この用語をシェア
バウンスメールとは
バウンスメール(Bounce Mail)は、配送失敗したメールの送信者への通知です。NDR(Non-Delivery Report)やDSN(Delivery Status Notification)とも呼ばれます。受信側メールサーバーまたは中継サーバーが、メール配送に失敗した場合、送信者に対してエラー内容を通知します。
バウンスメールの種類
ハードバウンス(Hard Bounce)
恒久的な配送失敗で、再送信しても成功しないケース:
- 存在しないアドレス: User unknown(550 5.1.1)
- 無効なドメイン: Domain not found(550 5.1.2)
- 受信拒否: Recipient rejected(550 5.7.1)
- メールボックス無効: Mailbox unavailable(550 5.2.1)
ソフトバウンス(Soft Bounce)
一時的な配送失敗で、再送信により成功する可能性があるケース:
- メールボックス満杯: Mailbox full(452 4.2.2)
- サーバー一時停止: Server temporarily unavailable(450 4.4.1)
- メッセージサイズ超過: Message too large(552 5.3.4)
- Greylisting: Temporary failure(450 4.7.1)
バウンスメールの構造
典型的なバウンスメール
From: MAILER-DAEMON@mail.example.com
To: sender@example.com
Subject: Undelivered Mail Returned to Sender
This is the mail system at host mail.example.com.
I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.
For further assistance, please send mail to postmaster.
: host mx.example.com[192.0.2.100] said:
550 5.1.1 : Recipient address rejected:
User unknown in local recipient table (in reply to RCPT TO command)
自社メールサーバー運用への応用
バウンス処理設定(Postfix)
# main.cf
# バウンス通知先
bounce_notice_recipient = postmaster
2bounce_notice_recipient = postmaster
# バウンス保持期間
bounce_queue_lifetime = 5d
maximal_queue_lifetime = 5d
# バウンスメールサイズ制限
bounce_size_limit = 50000
バウンス率の監視
高いバウンス率は、以下の問題を示唆します:
バウンス処理の自動化
# バウンスメール分析スクリプト例
# /var/log/mail.log からバウンス抽出
grep "status=bounced" /var/log/mail.log | \
awk '{print $7}' | \
sort | uniq -c | sort -rn
バウンスアタック対策
Backscatter問題
偽装送信者アドレスによるスパム送信により、無関係な第三者にバウンスが届く問題:
Postfixでの対策
# main.cf - 受信時検証
smtpd_recipient_restrictions =
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unverified_recipient,
permit
関連ブログ記事
まとめ
バウンスメールは、配送失敗の通知機能として重要ですが、適切な処理が必要です。自社メールサーバーでは、ハードバウンスの即時処理、ソフトバウンスの再送管理、バウンス率の監視により、メール配送の品質を維持できます。バウンスアタック対策として、受信時の厳格な検証が重要です。
