bounceHammer has been EOL'ed on February 29, 2016

製品ライフサイクルの終了

2010年3月にオープンソースソフトウェアとして公開して以来、多くのユーザ様・企業様にダウンロードし、 ご利用いただきましたbounceHammerは、2016年2月29日(月)を持ちまして製品ライフサイクルの終了(EOL: End Of Life) となりました。長きにわたりbounceHammerをご使用いただき誠に有り難う御座いました。 開発元では後継となるバウンスメール解析ライブラリとして、より高精度で高速なSisimai(シシマイ) を二条項BSDライセンスで公開しています。

Sisimai
商用サポート

  • 1一式導入・設定・保守・開発の補助
  • 2独自MTA用解析モジュールの開発
  • 3個別案件の対応とメールサポート
  • 4バウンス管理・運用コンサルティング
  • 5スポット解析・解析済みデータ提供

バウンスが発生する3つのタイミング

2010/12/04

電子メールはどこでバウンスするのか?

送信した電子メールがなんらかのエラーで戻ってくる事を バウンスと表現します。

送信したメールが自分のネットワークのメールサーバを通り、相手側メールサーバに到達し、 宛先メールボックスに配送されるまでの間、バウンスが発生するタイミングは次の3つに分類できます。

  • 自分のメールサーバから送信する時に発生
  • 相手側メールサーバにSMTP接続している間に発生
  • 相手側メールサーバにメールを送信した後に相手側メールサーバで発生

この記事ではバウンスが発生する3つのタイミングを説明します。


バウンスが発生する3つのタイミング

A. 接続エラー

図のAは接続エラーの際にバウンスします。

概ねバウンス全体の5%前後が接続エラーで発生するものです。 接続エラーは主に相手側メールサーバにSMTP接続する以前に起こるもので、次のような事項が原因です。

  • 宛先メールアドレスのホスト部分(@の右側)が存在しないドメイン
  • 宛先メールアドレスのホスト部分がDNSで名前解決できない
  • 名前解決した相手側メールサーバのIPアドレスが不正
  • 相手側メールサーバにSMTP接続できない(応答がない・接続が確立できない)
  • 自分のメールサーバと相手側メールサーバ間のネットワーク障害など

接続エラーで発生する実際のバウンスメールは、一定期間内に配送できなかった (Delivery time expired)という文言が書かれています。 bounceHammerexpiredという理由に分類します。


このケースで注意すべきなのは、上記のような接続エラーは相手側メールサーバや 宛先の周辺ネットワークの障害・異常だけが原因ではない事です。

DNSで名前解決できない

宛先メールアドレスのドメイン部分(@の右側)の権威あるDNSコンテンツサーバに異常がある、 というのが最も多いのですが、 自分のメールサーバが参照しているDNSサーバが機能していない 可能性もあります。

応答無し・ネットワーク障害

多くは相手側メールサーバがダウンしている、相手側ネットワークのFirewallが SMTP接続を阻んでいる、というケースです。

しかし自分のネットワーク側のFirewallが外部へのSMTP接続を 阻んでいる可能性もあります。 接続プロバイダによって行われる OP25B( Outbound Port 25 Blocking) は自分のネットワーク側が外部へのSMTP接続を制限している為に接続できないケースに該当します。

B. SMTPエラー

図のBは相手側メールサーバにSMTP接続が確立した後、 SMTPセッション中に発生するエラーによってバウンスします。 バウンス全体の85%前後、つまりほとんどのバウンスはこのタイミングで発生するものです。

このケースで発生する実際のバウンスメールは、宛先不明(User unknown)、 メールボックスいっぱい(mailbox full)、メールが大きすぎる(exceed limit)など様々です。 bouncehammerはバウンスした原因を 差戻理由/Reasons に示すように、なるべく詳細に分類します。

C. 一旦受け取って後でバウンスしてくる

メールサーバでは qmail がデフォルトでこの動作をします。また日本の携帯電話キャリアでは au by KDDI (@ezweb.ne.jp宛)も概ねこの動作をします。

送信した自分のメールサーバから見れば、送信のSMTPセッション自体は正常に終了した後、 数秒〜数時間経過してから、 相手側メールサーバからバウンスメールが送られてきて、 それを受け取って発信者に送信(差戻)します。


あるいは、宛先不明や接続元IPアドレスがブラックリストに載っていたなどの場合のみ、 SMTPセッション中にエラーを発生させ、それ以外は一旦受け取って改めて バウンスメールを送ってくる場合もあります。

多くの場合、バウンスメールはBのように、送信する自分のメールサーバが 生成して発信者に送り返すものですが、Cの場合は相手側メールサーバによって作られ、 そして相手側毎の様々なバウンスメールのフォーマット・文言が存在します。