gi1242
1
皆さん、こんにちは。
数年間問題なくサイトを運用してきましたが、突然SMTPが機能しなくなりました。(ホストまたはコンテナの設定は一切変更していません。)
SMTP(SMTPSではありません)を使用しています。Discourseコンテナに入り、curlを使用してメールを送信できるかテストしました。
curl smtp://mail.example.com --mail-from myself@example.com --mail-rcpt receiver@example.com --upload-file email.txt
しかし、Discourseはメールを送信せず、ログには次のように表示されるだけです。
Net::ReadTimeout with #<Socket:(closed)>
ホスト上のPostfixログには次のように表示されます。
connect from unknown[172.17.0.5]
lost connection after CONNECT from unknown[172.17.0.5]
disconnect from unknown[172.17.0.5] commands=0/0
何が変更された可能性があるか、どなたかアイデアはありますか?
よろしくお願いします。
GI
追伸:申し訳ありませんが、この投稿の最初のバージョンは誤って切り取られ、メッセージの半分しか投稿されませんでした。編集しました。
gi1242
2
皆さん、こんにちは。
問題の原因を突き止めました。ホストが、すべての受信メール(コンテナからのものを含む)に対して7秒の遅延を課していることが判明しました。Discourseはデフォルトで5秒でタイムアウトします。
containers/app.ymlで10秒に増やしました。
DISCOURSE_SMTP_OPEN_TIMEOUT: 10
DISCOURSE_SMTP_READ_TIMEOUT: 10
これで動作するようになりました… しかし、ホストのPostfix遅延を解消する方法を知っている方はいませんか?設定ファイルを探しましたが、何も見つかりませんでした…
GI
postscreen を使用している場合は、postscreen_greet_wait および postscreen_greet_action を参照してください。
そうでない場合は、接続中の IP の逆引き DNS のタイムアウトが原因である可能性があります。
「いいね!」 2
gi1242
4
ハハ!本当にありがとうございます!まさにその問題でした。
Dockerが通常割り当てるすべてのIPアドレス(172.17.0.2から10まで)に静的IPアドレス(ダミーホスト名付き)を追加しました。これにより、コンテナが異なるIPで起動した場合でも、nslookupで停止することはないはずです。
DockerですべてのコンテナのIPアドレスを解決する方法があるかどうか、気になります。
再度感謝します。
「いいね!」 1
system
(system)
クローズされました:
5
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.