はじめに
「メールが届かない・スパムに入る問題を解決したい」
「HTMLメールのテンプレートを綺麗に作りたい」
「大量メールの配信時にレート制限やバウンス処理が必要」
メール配信は一見シンプルに見えて、SPF・DKIM・DMARC設定・バウンス処理・配信率改善など専門的な知識が必要です。Claude Codeを使えば、設定から実装・運用まで体系的に構築できます。
目次
- メール配信の全体設計
- トランザクションメールの実装
- HTMLメールテンプレートの設計
- 配信率を上げるドメイン設定
- ニュースレターシステムの構築
- バウンスとクレームの処理
- メール配信の監視
- まとめ
1. メール配信の全体設計
サービス選択の相談
> メール配信サービスを選択してください。
要件:
- トランザクションメール:月10万通
- ニュースレター:購読者5,000人に月4回
- APIからの送信(Node.js)
- 配信ログ・開封率・クリック率の追跡
候補:Resend・SendGrid・Amazon SES・Postmark
コスト・機能・使いやすさで比較して推奨を教えてください。
メール送信の抽象化レイヤー
> メール送信処理を抽象化して、
サービスを後から切り替えやすい設計にしてください。
インターフェース設計:
- send(options: EmailOptions): Promise<SendResult>
- サービスごとの実装クラス(Resend・SendGrid・SES)
- 開発環境ではMailHogでローカルキャプチャ
TypeScriptで実装してください。
2. トランザクションメールの実装
主要メールの実装
> 以下のトランザクションメールを実装してください。
メール種別:
- ウェルカムメール(登録直後)
- メールアドレス確認メール
- パスワードリセットメール
- 注文確認メール
- 発送通知メール
- 決済失敗通知メール
要件:
- React Email でHTMLテンプレート作成
- 日本語・英語対応(i18n)
- プレビューURLの生成(開発用)
- Resend APIでの送信
各メールのPreview画面も作成してください。
メール送信キューの実装
> メール送信をキューで非同期処理する仕組みを実装してください。
設計:
- BullMQ(Redis使用)でキューを管理
- 優先度設定(パスワードリセット > ニュースレター)
- 失敗時のリトライ(3回・指数バックオフ)
- デッドレターキュー
- 送信レート制限(1秒あたり最大10件)
3. HTMLメールテンプレートの設計
React Emailでのテンプレート作成
> React Emailを使って以下のメールテンプレートを作成してください。
デザイン要件:
- レスポンシブデザイン(モバイル対応)
- ダークモード対応
- 会社のブランドカラー(#1a3a6b・#e84c3d)
- フォールバックフォント(Webフォント非対応環境)
テンプレート:
- ベースレイアウト(ヘッダー・フッター共通)
- ウェルカムメール
- 注文確認メール(商品リスト表付き)
- パスワードリセット
各テンプレートのテキスト版も自動生成してください。
4. 配信率を上げるドメイン設定
SPF・DKIM・DMARCの設定
> メールの配信率を上げるためのドメイン設定を行ってください。
設定内容:
- SPFレコード(送信元IPの許可リスト)
- DKIMキーの生成とDNS設定
- DMARCポリシーの設定(p=quarantine → p=reject への移行計画)
- BIMI(ブランドロゴの表示)の設定
使用するサービス:Resend(またはSendGrid)
ドメイン:example.com
各設定のDNSレコードを正確に生成してください。
5. ニュースレターシステムの構築
購読管理システムの実装
> ニュースレターの購読管理システムを実装してください。
機能:
- 購読フォーム(ダブルオプトイン)
- 購読解除(ワンクリック解除・List-Unsubscribeヘッダー)
- セグメント管理(タグ・属性による分類)
- 配信停止リスト(バウンス・スパム報告の自動追加)
データベース設計(Prisma)も含めてください。
CAN-SPAM・GDPRに準拠した実装にしてください。
一括配信の実装
> 5,000人のニュースレター一括配信を実装してください。
要件:
- SendGridのBatch APIを使用
- レート制限を考慮した分割送信
- 送信進捗のリアルタイム表示
- 失敗した送信の自動リトライ
- 配信完了レポートの自動生成
6. バウンスとクレームの処理
Webhookによるバウンス処理
> SendGrid・Resendのイベントwebhookを使って
バウンスとスパムクレームを処理してください。
処理するイベント:
- ハードバウンス → 即座に購読リストから除外
- ソフトバウンス → 3回でハードバウンスとして処理
- スパムクレーム → 即座に除外・アラート通知
- 開封・クリックイベント → 分析データに保存
べき等性を考慮した実装にしてください。
7. メール配信の監視
配信率ダッシュボード
> メール配信の主要KPIを監視するダッシュボードを実装してください。
KPI:
- 配信率(delivered rate):目標 99%以上
- 開封率(open rate):業界平均との比較
- クリック率(click rate)
- バウンス率:目標 2%以下
- スパムクレーム率:目標 0.1%以下
アラート設定:
- バウンス率 > 5%で即時通知
- スパムクレーム率 > 0.3%で即時通知
8. まとめ
Claude Codeでのメール配信システム構築の効率化ポイント:
- React Emailを使ったHTMLテンプレートを自動生成
- SPF・DKIM・DMARCのDNS設定を正確に生成
- バウンス・クレーム処理のWebhookを実装
- ニュースレターの購読管理システムをゼロから構築
メール配信で必須の設定:
- SPF・DKIM・DMARCの設定(配信率に直結)
- ダブルオプトイン(スパムクレームの防止)
- ワンクリック購読解除(法的要件・CAN-SPAM)
- バウンス処理の自動化(リスト品質の維持)
次回の第47回:多言語対応をする方法では、i18nとl10nをClaude Codeが自動実装する方法を解説します。
よくある質問(FAQ)
Q. Resendが日本語メールに対応していますか?
A. はい、UTF-8で日本語をサポートしています。Claude Codeに「Resendで日本語HTMLメールを送信するコードを実装してください」と依頼することで、文字化けのない実装が得られます。
Q. 大量送信時にIPウォームアップは必要ですか?
A. 新しいドメイン・IPから大量送信する場合は必要です。Claude Codeに「IPウォームアッププランを作成してください。現在の購読者数は10,000人です」と相談することで、段階的な送信増加計画を提案してくれます。
この記事はClaude Code入門シリーズ(第5部)の第46回です。← 第45回:OAuth2・OIDC | 第47回:多言語対応(i18n) →
ご質問はお問い合わせページからお気軽にどうぞ。