我尝试使用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有关。
答案 0 :(得分:0)
如果没有MyBB安装我无法测试,但如果它使用本机PHP邮件功能,您可能需要在mail()函数调用中添加-f选项,因为您使用的是sendmail ..注意它是第五个参数(我浪费了一天,一度认为它是第四个)
mail('nobody@example.com', 'the subject', 'the message', null,
'-flocaluserr@thisdomain.com');