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 のどこかに問題があるのではないかと推測しています。