« 意欲を維持するヒント集 | メイン | Mac OS X上のUnicode »

携帯のエラーメールの種類
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

harukiです。

メールを送信するサイトの場合、メールアドレスのクリーニングは定期的に行うべきです。 そのためにはエラーメールを解析しなければなりません。

そこで、エラーメールの種類をまとめてみました。

SMTPエラー

存在しないメールアドレスや、正しい形式でないメールアドレスの場合は、 DoCoMo,au,SoftBankの3キャリアともSMTPエラーになります。

例として、以下の条件でメールを送信したとします。

From: sender@example.com
Return-Path: bounce@example.com
To: アドレス@docomo.ne.jp

MTAにより異なりますので、ここではPostfixを例にします。
Postfixではmultipart/reportのメールがbounce@example.comに届きます
(※ 必要な情報のみに省略しています)

From: MAILER-DAEMON@example.com (Mail Delivery System)
Subject: Undelivered Mail Returned to Sender
To: bounce@example.com
Content-Type: multipart/report; report-type=delivery-status;
	boundary="boudary/example.com"

This is a MIME-encapsulated message.

--boudary/example.com
Content-Description: Notification
Content-Type: text/plain

(メッセージ)

<アドレス@docomo.ne.jp>: host mfsmax.docomo.ne.jp[203.138.180.240] said: 550
    Unknown user アドレス@docomo.ne.jp (in reply to end of DATA command)

--boudary/example.com
Content-Description: Delivery report
Content-Type: message/delivery-status

X-Postfix-Sender: rfc822; sender@example.com

Final-Recipient: rfc822; アドレス@docomo.ne.jp
Action: failed
Status: 5.0.0
Diagnostic-Code: X-Postfix; host mfsmax.docomo.ne.jp[203.138.180.240] said: 550
	Unknown user アドレス@docomo.ne.jp (in reply to end of DATA
	command)

--boudary/example.com
Content-Description: Undelivered Message
Content-Type: message/rfc822

(ヘッダ)
From: sender@example.com
To: アドレス@docomo.ne.jp

(本文)

--boudary/example.com--

Content-Type: message/rfc822のToから、「アドレス@docomo.ne.jp」を取得できます。

特殊なエラーメール

auとSoftBankでは、上記のエラーに加えて、一旦受信されてから送り返されてくるものがあります。 種類は4つあります。
(※ ここでも必要な情報のみに省略しています)

  • 1. multipart/report
  • 2. text/plain
  • 3. multipart/mixed
  • 4. multipart/mixed(自動転送先)

1. multipart/report

Postfixの例で書いたものがサーバから送られてきます。
auとSoftBankにこのタイプがあります。

2. text/plain

拒否している場合のauのエラーメールです。
※ <アドレス@ezweb.ne.jp>の行がない場合もあります。

Content-Type: text/plain; charset=iso-2022-jp
From: Postmaster@ezweb.ne.jp
To: bounce@example.com
Subject: Mail System Error - Returned Mail

次のあて先へのメッセージはエラーのため送信できませんでした。

<アドレス@ezweb.ne.jp>

送信先メールアドレスが見つからないか、
送信先メールサーバの事由により送信できませんでした。
メールアドレスをご確認の上、再送信してください。
Each of the following recipients was rejected by a remote mail server.
---------------------------------------------------
(送信したメールのヘッダ)
From: sender@example.com
To: アドレス@ezweb.ne.jp

(本文)

SoftBankにもこのタイプがあります。

To: bounce@example.com
From: MAILER-DAEMON@softbank.ne.jp
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit
Subject: Non Delivery Notification

送信先エラーにより、配信されませんでした。
To:アドレス@softbank.ne.jp
Date:Sun, 1 Sep 2007 00:00:00 +0900

3. multipart/mixed

auでは送信したメールの内容がないパターンもあります。

To: bounce@example.com
From: Postmaster@ezweb.ne.jp
Content-Type: multipart/mixed; boundary="==boundary"
Subject: Mail System Error - Returned Mail

This message is in MIME format.Since your mail reader does not understand this format, some or all of the message may not be legible

--==boundary
Content-Type: text/plain; charset="ISO-2022-JP"
Content-Transfer-Encoding: 7bit

次のあて先へのメッセージはエラーのため送信できませんでした。

送信先メールアドレスが見つかりませんでした。
メールアドレスをご確認の上、再送信してください。

The user(s) account is disabled.

<アドレス@ezweb.ne.jp>


--==boundary--

4. multipart/mixed(自動転送先)

auでは自動転送先が2つまで設定できます。 自動転送先へメールが届かなかった場合に、以下のメールが送られてくることがあります。

To: bounce@example.com
From: Postmaster@ezweb.ne.jp
Content-Type: multipart/mixed; boundary="==boundary"
Subject: Mail System Error - Returned Mail

This message is in MIME format.Since your mail reader does not understand this format, some or all of the message may not be legible

--==boundary
Content-Type: text/plain; charset="ISO-2022-JP"
Content-Transfer-Encoding: 7bit

次のあて先へのメッセージはエラーのため送信できませんでした。

送信先メールアドレスが見つからないか、
送信先メールサーバの事由により送信できませんでした。
メールアドレスをご確認の上、再送信してください。

Each of the following recipients was rejected by a remote
mail server.

    Recipient: <転送先アドレス>
    >>> RCPT TO:<転送先アドレス>
    <<< 550 Unknown user 転送先アドレス


--==boundary--

4は特殊な状況なので、4以外のエラーメールにはできるだけ対応しておいたほうがいいと思います。

※参考
KDDI au: EZwebへメール送信する際の注意事項 > 技術仕様
http://www.au.kddi.com/notice/manner/jyushin_policy/shiyo.html

追記(09/04 18:15)

はてブのコメントでご指摘いただいたVERPについて、知りませんでしたので試してみました。

Postfix VERP Howto
http://www.postfix.org/VERP_README.html

 Postfix 2.3 and later:

    % sendmail -XV -f owner-listname ....

    % sendmail -XV+= -f owner-listname ....

Postfix 2.2 and earlier (Postfix 2.3 understands the old syntax for backwards compatibility, but will log a warning that reminds you of the new syntax):

    % sendmail -V -f owner-listname ....

    % sendmail -V+= -f owner-listname ....

ということで、PHPのmail関数の場合は、
mail($to, $subject, $message, $additional_headers, '-XV -f bounce');

として、すぐ確認できる種類を試してみました。
(確認できなかった種類 = 2.text/plainのSoftBank)

結果として、確認できた種類ではすべて

To: bounce+アドレス=docomo.ne.jp@example.com
という形式で取得することができました。

貴重な情報をありがとうございます。

トラックバック

このエントリーのトラックバックURL:
http://www.unoh.net/mt32/mt-tb.cgi/946

この一覧は、次のエントリーを参照しています: 携帯のエラーメールの種類:

» Re: 携帯のエラーメールの種類 from サンチャバード - リテールコムで働くみんなのブログ
そろそろアクセス数を集める内容を書いてみようかなと思い立った技術部 K です。 こんにちは。 ウノウラボさんのエントリー携帯のエラー... [詳しくはこちら]

» 興味があった記事特集1 from omine3の備忘録集
ここには最近インターネットをめぐって興味があった記事を書いていきます。 てか僕のブックマーク [詳しくはこちら]

コメントを投稿


画像の中に見える文字を入力してください。