Silverstripe 在 ForgotPassword 表单和会员密码更改上抛出 sendmail 错误

问题描述 投票:0回答:1

我遇到问题,尝试使用 ForgotPassword 表单,或尝试更改管理/安全中的用户现有密码会引发以下错误:

与“process /usr/sbin/sendmail -bs”的连接已意外关闭。

这种情况发生在 SS_ENVIRONMENT_TYPE="live" 的生产站点中,但当我将其更改为“dev”时则不会发生

我使用 Mailgun 的电子邮件配置如下:

---
Name: myemailconfig
After:
  - '#emailconfig'
Only:
  environment: 'live'
---
SilverStripe\Core\Injector\Injector:
  Swift_Transport:
    class: Swift_SmtpTransport
    properties:
      Host: smtp.mailgun.org
      Port: 587
      Encryption: tls
    calls:
      Username: [ setUsername, ['`MAILGUN_SMTP_USERNAME`'] ]
      Password: [ setPassword, ['`MAILGUN_SMTP_PASSWORD`'] ]
      AuthMode: [ setAuthMode, ['login'] ]

有什么想法为什么会发生这种情况或者可以解决什么吗??

silverstripe silverstripe-4
1个回答
0
投票

您看到的错误“与进程 /usr/sbin/sendmail -bs 的连接已意外关闭”,通常表示使用 Sendmail 程序从服务器发送邮件时出现问题。由于您使用 Mailgun 进行电子邮件传送,因此您根本不需要依赖 Sendmail。

您的问题可能与 SilverStripe 尝试在实时环境中发送电子邮件的方式有关,可能由于某种原因回退到默认的 Sendmail 配置。以下步骤可帮助诊断和解决问题:

检查配置值: 确保环境变量 MAILGUN_SMTP_USERNAME 和 MAILGUN_SMTP_PASSWORD 在实时环境中正确设置并可访问。

确保 SwiftMailer 配置: 确保您使用 SwiftMailer 作为邮件程序。将此配置添加到您的 app/_config/email.yml 中:

---
Name: myemailconfig
After:
  - '#emailconfig'
Only:
  environment: 'live'
---
SilverStripe\Core\Email\Email:
  send_all_emails_to: '' # Make sure this is empty to prevent redirecting all emails to a single address
  send_all_emails_from: '[email protected]' # Replace with your domain or the desired sender address
  mailer: 'swift'

© www.soinside.com 2019 - 2024. All rights reserved.