メール配信基盤、ついに完全勝利で完結

背景:理論を現実に落とし込む「最後の15分」

昨日の記事で書いた「ファイル移動」による予約配信。その理論を実装する段階で、新たな壁にぶつかった。サーバー(Xserver)側の定期実行(Cron)が「5分刻み」という制約だ。

21:30に届けたいメールを、いかにして「1分の狂いもなく」届けるか。深夜のデバッグで見えてきたのは、「サーバー間のリレー」と「人間の心理」の同期だった。


完結への要点①:世界水準の「特急・書留便」へ

単にメールを送るのではなく、Amazon SES(配信インフラ)の審査を通過させ、送信ドメイン認証(SPF/DKIM/DMARC)をすべてパス(Triple PASS)させた。

  • Gmailへの到達率を極限まで向上
  • 「怪しいチラシ」ではなく「信頼される公文書」としての証明
  • 迷惑メールフォルダへの振り分けを徹底回避

これにより、確実に「届く」基盤が完成した。


完結への要点②:8分前の「思考停止」リレー

Xserverの5分刻みCronを攻略するため、VPS側から「8分前(または6分前)」にメールを発射するロジックを組んだ。

  • VPS(8分前): Xserverへデータをパス
  • Xserver(5分前): データを受信し、本来の目標時間まで「お預かり」状態で待機
  • Xserver(目標時間): ジャストのタイミングで一斉配信を開始

この「サーバー同士の時差リレー」により、インフラの制約をプログラムで解決した。


完結への要点③:UIの言葉が「安心」を作る

技術的なラグをユーザーにどう見せるか。管理画面の表記を「配信開始」から「配信準備開始」へと変更した。

  • 「配信準備開始」: サーバーが動き出したことを伝え、ユーザーに安心感を与える
  • 「15分前ルール」: 配信希望時間の15分前までの操作を必須化
  • 「お茶をすする時間」: 運用に余裕を持たせることで、システムも人間もパニックにならない設計

まとめ:エンジニアの仕事は「お茶を飲む時間」を作ること

完成したシステムを眺めて思う。

メール配信という、当たり前のインフラを作り直す。その本質は、単にパケットを飛ばすことではなく、「担当者の方が、予約を済ませた後に安心してお茶を一杯飲める時間」を作ることだった。