web-dev-qa-db-ja.com

sendmailが受信者にメッセージを配信していません

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で機能させる必要がありますが、プログラムからリモート電子メールサーバーまでの多くのステップで失敗している場所を特定できません。これをどのように理解すればよいですか?

2
Don Rhummy

サーバーは他の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 

リクエストがファイアウォールでブロックされるかどうかを確認します。

2
Petter H

25以外のポートを試しましたか?住宅用ISPの背後にいない場合は、おそらくこの問題は発生しません。また、Thunderbirdがメールを送信すると言うとき、問題のサーバーに対して認証を行っていますか?そうでない場合は、SSLポートを介して別のサーバーに接続している可能性があります。

1
Shapeshifter