Sendmailを機能させるために多くの問題が発生しました。私が試した解決策はどれもうまくいきませんでした。
最初:sendmailが60秒間ハングし、その後メールを送信しませんでした。
これを解決するために、Webからの提案を使用して、/etc/hostname
を完全修飾ドメイン名(FQDN)に設定し、それを/etc/hosts
にも配置しました。このdidはハングを取り除きますが、sendmailから送信された電子メールを受信することはありません。
2番目:インストールされた接尾辞
これは問題を修正しませんでした。コマンドラインでsendmail
またはmail
を介して電子メールを送信することは両方とも失敗します。例:
echo "a message" | sendmail [email protected]
echo "a message" | mail [email protected]
どちらのコマンドもエラーなしですぐに返されますが、Gmailアカウントでメールが受信されることはありません。
ルーターでもポートが25で開いていることを確認しました(ただし、Thunderbirdはルーターの背後でメールを送信できるため、これは問題にはなりません)。
これをPHPで機能させる必要がありますが、プログラムからリモート電子メールサーバーまでの多くのステップで失敗している場所を特定できません。これをどのように理解すればよいですか?
サーバーは他のSMTPサーバーに接続できる必要があります
$ nc -v mta5.am0.yahoodns.net 25
Connection to mta5.am0.yahoodns.net 25 port [tcp/smtp] succeeded!
220 mta1193.mail.ne1.yahoo.com ESMTP YSmtpProxy service ready
^C
これは、ポート25が発信トラフィックに対して閉じられている場合の外観です。
$ nc -v mta5.am0.yahoodns.net 25
nc: connect to mta5.am0.yahoodns.net port 25 (tcp) failed: Connection timed out
リクエストがファイアウォールでブロックされるかどうかを確認します。
25以外のポートを試しましたか?住宅用ISPの背後にいない場合は、おそらくこの問題は発生しません。また、Thunderbirdがメールを送信すると言うとき、問題のサーバーに対して認証を行っていますか?そうでない場合は、SSLポートを介して別のサーバーに接続している可能性があります。