何を試したか
1 回限りのツールではなく「継続運用」を前提にした一斉メール配信システムを自作した。名刺アプリなどからエクスポートした連絡先 CSV を取り込んで名寄せ・重複排除し、テンプレート差込で一斉配信し、配信停止(オプトアウト)を確実に尊重し続ける、という一連を自分の運用環境で完結させることを目標にした。
設計で重視したこと
- 配信停止の権威を 1 つのローカルストアに一元化し、大文字小文字を区別せず、一斉送信の直前に毎回 fail-closed で照合する。「解除した人に二度と送らない」ことを機能ではなく不変条件として扱う
- RFC 8058 のワンクリック配信停止と List-Unsubscribe ヘッダで到達性に配慮
- 段階的なウォームアップ送信で送信レピュテーションを保護
- 二重送信をしない(キャンペーン送信ログの冪等化、予約スケジューラの原子的なクレーム、起動時のリカバリ)
- 仕様書とコードが食い違ったら「コードが正」とし、仕様書をバグとして即修正する運用規律
- 「仕様から再現できる=ソフトウェア」と「仕様からは再現されない=データ資産」を明確に分離する
何が分かったか
- オプトアウトの正しさは機能追加ではなくアーキテクチャの問題だった。送信経路ごとに「どのゲートを通るか」を表で洗い出さないと、安全保証が曖昧なまま残る
- 「外部サービスは best-effort、権威はローカル一本」と決め切ると、障害時の判断がぶれない
- AI による独立再レビューを複数巡回させると、実コードと突き合わせて初めて分かる抜け(履歴からの再送が配信停止照合を通っていなかった等)が表面化する。レビューは指摘を実コードで裏取りするところまでやって意味がある
- 継続運用を前提とした設計では、実宛先への本番一斉送信のような不可逆操作をあえて未実施のまま、検証だけ先に積み上げておける