過去のブログを掘り起こして、当時分からずじまいだったことを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日間、けなげにキューでじっと待ち続けるのだ。