補足授業5. メール送信のリトライについて考えてみた

過去のブログを掘り起こして、当時分からずじまいだったことをAIニキの力を借りて解決していくシリーズの5回目です。

第5回目は、2012年9月16日の内容です。

メール送信のリトライ(再送)について考えてみた


前回の補足授業4でメールはどこにいたのかというお題を振り返ってみました。

で、この記事は実際に手を動かして確かめてみたという内容で、この当時の環境を作るところがなんとも言えない。10年経つとこんなに違うのだな。
この頃の癖というか、勢いというか、そのエネルギーもなんかいいねえと今読んで思う。


まずメールが届かない環境を作ろうとするんだけど、

・メールフィルタで迷惑メールフォルダに振り分けてみた。送信ログにはsendとしか残らない。

・メールボックスをいっぱいにしてみた。daemonからエラーが返ってきて再送にならない。

どちらもケース的に、再送が起きる条件じゃないんですよねー。と今ならわかるけども、当時はとにかくやってみるしかなかったわけで、その試行錯誤がいいなあ。ともかく興味しんしん丸な物事がたくさんあった。

VMwareで仮想サーバーを立てて、そこから本番VPSにむけて送信、VPS側のiptablesで自宅のIPをdropするという構成に落ち着いた。なんや前と一緒やないか。
お金かけずに済んだのは良かったんだ。


実際のログはこうなっていた。

Sep 15 18:36:05 stat=Sent
Sep 15 18:38:05 stat=Deferred: Connection timed out with vincentina.net.
Sep 15 19:36:22 stat=Deferred:
Sep 15 20:36:21 stat=Deferred:
Sep 15 21:36:21 stat=Deferred:
Sep 15 22:36:21 sender notify: Warning: could not send message for past 4 hours

Sentの2分後にDeferred、そこから1時間おきにDeferred、4時間後に警告、というSendmailのデフォルト通りの動きで、ちゃんとキューに積まれてリトライしていた。

Deferredというのは後でまた再送する状態で、諦めたわけじゃなくて、キューでじっと待ってるということだ。

5日間経っても届かなかったら送信者にバウンスメールが返ってきて終わりになる。5日間、けなげにキューでじっと待ち続けるのだ。

Related Posts


投稿者: Takeken

インターネット利用者のITリテラシーを向上したいという設定の2次元キャラです。 サーバー弄りからプログラミングまで手を付けた自称エッセイストなたけけんの物語。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です