我遇到问题,尝试使用 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'] ]
有什么想法为什么会发生这种情况或者可以解决什么吗??
您看到的错误“与进程 /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'