我正在尝试使用 Zoho 的 SMTP 服务器从 MyBB 安装发送注册电子邮件。但是,电子邮件永远不会发送,当我检查日志时,我注意到错误是。
Month Day Year:Hour:Minute host=smtp.zoho.com tls=on auth=on user=user[at]mydomain.com from=user[at]mydomain.com recipients=some.user[at]gmail.com smtpstatus=553 smtpmsg='553 Relaying disallowed' errormsg='the server did not accept the mail' exitcode=EX_UNAVAILABLE
(某些部分被遮盖以隐藏私人信息!)
这是在 php.ini 中设置的 sendmail 路径
sendmail_path = "/usr/bin/msmtp -C /etc/msmtp/myserver --logfile /var/log/msmtp/myserver.log -a default -t"
(某些部分被遮盖以隐藏私人信息!)
这是 MSMTP 的 myserver 配置
# Define here some setting that can be useful for every account
defaults
logfile /var/log/msmtp/general.log
# Settings for default account
account default
protocol smtp
host smtp.zoho.com
tls on
tls_starttls off
tls_certcheck off
port 465
auth plain
user user[at]mydomain.com
password **********
from user[at]mydomain.com
logfile /var/log/msmtp/myserver.log
# If you don't use any "-a" parameter in your command line,
# the default account "default" will be used.
# account default: default # (disabled because this gives a "redefined" error)
(某些部分被遮盖以隐藏私人信息!)
问题是我知道它正在工作并且没有端口被阻止,因为当我在命令行中使用相同的命令时。电子邮件已成功发送和接收。
sudo echo -e "Subject: Test Mail\r\n\r\nThis is a test mail" | msmtp --debug -a default --from=user[at]mydomain.com -t some.user[at]gmail.com --file=/etc/msmtp/myserver
(某些部分被遮盖以隐藏私人信息!)
这意味着要么是 MyBB 发送电子邮件的方式有问题,要么是我在 php.ini 文件中设置的 PHP 配置或命令行有问题。
我已经搜索了一整天,但我得到的每个结果要么与 PHP 无关,要么从一开始就没有用。我的是从命令行工作,而不是从 PHP 工作。
我在服务器上使用 UFW,每个端口都完全打开,所以我猜它与阻塞的端口无关。
它适用于 Gmail,但每封电子邮件都被发送到垃圾邮件文件夹,而且并非每次都适用于每封电子邮件。
编辑:我尝试使用 PHP5-CLI 发送电子邮件并且它有效。所以我猜这可能是 PHP5-FPM 或 MyBB 有问题。