PHP - 553转发不允许使用Zoho邮件和MyBB

时间:2014-05-14 21:28:50

标签: php sendmail mybb zoho msmtp

我尝试使用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有关。

1 个答案:

答案 0 :(得分:0)

如果没有MyBB安装我无法测试,但如果它使用本机PHP邮件功能,您可能需要在mail()函数调用中添加-f选项,因为您使用的是sendmail ..注意它是第五个参数(我浪费了一天,一度认为它是第四个)

mail('nobody@example.com', 'the subject', 'the message', null,
'-flocaluserr@thisdomain.com');