最近、新しいDebianサーバーをセットアップしました。
Sendmailを初めてインストールしてセットアップした後、メールを送信できません。
Reason : Connection timeout.
/var/log/mail.logからの出力:
> May 6 02:42:53 k***** sm-mta[15070]: q465gjxF013677:
> to=<*****@gmail.com>, ctladdr=<*****@*****.ca> (1001/1001),
> delay=01:00:08, xdelay=00:00:00, mailer=esmtp, pri=300329,
> relay=alt4.gmail-smtp-in.l.google.com., dsn=4.0.0, stat=Deferred:
> Connection timed out with alt4.gmail-smtp-in.l.google.com.
Netstatからの出力:
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 15069/sendmail: MTA
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 15069/sendmail: MTA
25のTelnetは、他のコンピューター(telnet theserver.imworkingon.com 25)から実行した場合も成功しますが、作業中のサーバーから実行しようとした場合は成功しません。これは、どういうわけか、発信ポート25がブロックされているように見えることを私に伝えています...
誰かアイデアはありますか?
標準的なメールのトラブルシューティング手順がここに適用されます...ログから、送信先のgmail.com宛先のMX/DNSレコードを解決できることがわかります。したがって、これはDNSやルーティングの問題ではありません。
これは基本的なSMTP配信なので、ポート25にtelnetを使用して、宛先ホストに接続できることを確認してください...
私はこのシーケンスに従います:
Dig mx gmail.com
# Look for the mail destination IP in the output - "209.85.225.27" in this case
telnet 209.85.225.27 25
# This is an attempt to telnet to port 25 (smtp) on the recipient's server...
次のようなものが表示されます。
Trying 209.85.225.27...
Connected to iy-in-f27.1e100.net (209.85.225.27).
Escape character is '^]'.
220 ***************************************
上記が表示されない場合、送信ポート25のSMTPトラフィックは、マシンレベル(iptablesなどを確認)またはネットワークレベル(ネットワークファイアウォールまたはISPポリシーを確認)でブロックされています。
doで同様のメッセージが表示される場合は、メールを渡すことができ、タイムアウトエラーを受け取ることはありません。
さらに、クライアントオプションで、定義されたインターフェースを介したメールの送信が禁止されているかどうかを確認する必要があります。
O ClientPortOptions = Addr = 1.2.3.4、Name = XXX
宛先が間違ったネットワークにある場合、それは通過できません。
よく知られたサービスへの接続タイムアウトは、通常、次の2つのことのいずれかを意味します。
1-ISPがこれをブロックしているため、そこにあるSMTPサーバーのポート25に接続できません。お使いのマシンが直接またはリレー経由でメールを送信できるかどうかをISPに確認してください。 ISP /ホスティングプロバイダーによってリレーが提供されている場合は、次の行を/ etc/mail/sendmail.mcファイルの途中のどこかに追加します。
define(`SMART_Host', `[relay.your.isp.provides]')dnl
次にrootとしてsendmailconfig
を実行し、これが機能するかどうかを確認します。
2- TCP解決するウィンドウスケーリングの問題がある場合があります。これは、ケーブルからイーサネットカードドライバ、カード自体、ケーブル、スイッチとその間にあるルーターは、heisenbugとして特定の構成でのみ表示されます。次の行を/ etc/sysctl.confに追加すると、これを回避できます。
net.ipv4.tcp_rmem = 4096 87380 174760
net.ipv4.tcp_wmem = 4096 16384 131072
net.ipv4.tcp_window_scaling = 0
次にrootとして実行sysctl -p
そして、これで問題が解決するかどうかを再度確認します。