IBM Support

送信エラーメールのフォーマットに「送信エラーレポート」フォームが使われるケースと「MEMO」フォームが使われるケースが存在する理由

Technote(トラブルシューティング)


問題

IBM Domino サーバーを経由してインターネットメールを送信後に相手から送信エラーメールを受信した際、送信エラーメールのフォーマットが複数存在します。

-- 「送信エラーレポート」フォームで表示される送信エラー。「メールルーター」から届く。
-- 「Memo」フォームで表示される送信エラー。どのシステムより送付されているかはメッセージにより異なる。

どのような理由でこのような差異が発生しますか。


原因

IBM Notes/Domino はエラーメールの送信元サーバーから受信したメッセージの内容に応じて採用するフォームを変更しています。


I.「送信エラーレポート」フォームが採用されるケース

IBM Domino サーバーは受信したエラーメールに次のような記載があるかを確認します。

Content-Type: multipart/report; report-type=delivery-status;

Content-Type: message/delivery-status

Reporting-MTA: <host name>
Final-Recipient: RFC822;<address>
Action: failed
Status: 5.0.0
Remote-MTA: <host name>
Diagnostic-Code: <Reason>

※一部実際のフィールドを省略しています。

RFC 1894 では、content-type: message/delivery-status 以下の Action フィールドに記述可能な値として "failed" / "delayed" / "delivered" / "relayed" / "expanded" の5つが規定されています。

このような表記がある場合、IBM Domino サーバーは送信エラーレポートに SMTPDSNType というフィールドを設定し、Action フィールドに沿った値を入力します。
各 Action フィールドと数値の関連は以下の通りです。

Failed = 0
Delayed = 1
Delivered = 2
Relayed = 3
Expanded = 4

SMTPDSNType フィールドが "0" の場合には、IBM Domino サーバーはフォーム名が "NonDelivery Report"である送信エラーレポート用のフォームを選択します。


II.「 MEMO 」フォームが採用されるケース(1)

インターネットより受信した送信エラーメールに Content-Type: multipart/report の情報が含まれない場合、IBM Domino は通常のインターネットメッセージと同様に取り扱います。
そのため、フォームを "Memo" に設定し、メッセージの本文中には送信元サーバーが通知したメッセージ内容を含めた送信エラーメールとして受信します。


III.「 MEMO 」フォームが採用されるケース(2)

インターネットより受信した送信エラーメールに Content-Type: multipart/report; report-type=delivery-status; の情報や Action フィールドが含まれているにもかかわらず、フォームに "Memo" が選択された送信エラーメールを受信するケースが確認されています。

この事象は、送信エラーメール生成サーバー側の動作と送信エラーメールを受信する IBM Domino サーバーのリリースとの組み合わせにより発生します。

<送信エラーメール生成サーバーの動作>
エラーメール生成サーバーはオリジナルのメッセージ情報を通常 Content-type: message/rfc822 内に収めます。
本来、message/rfc822 の後で指定するメッセージにおいては、それ自体が完全な一つの MIME エンコードされたメッセージとして成り立っている必要があります。
しかしながら、送信エラーメールの生成サーバーによっては、オリジナルのメッセージがマルチパート(例:添付ファイルを含むメッセージ)である場合に Content-type: message/rfc822 の後に含めるべきデータの一部を除外する動作をすることが確認されています。

<IBM Domino 側の動作>
Domino 8.5.1 以前のリリースでは、Content-type: message/rfc822 内のデータが完全な MIME メッセージではない場合に Domino 側で正しく Itemize 処理できずメッセージを取り扱えない動作となっています。
Itemize 処理とは、MIME 形式のメッセージを Notes の NSF ファイルに収めるためにデータを Notes のフィールドに分割し格納するプロセスです。

つまり、エラーメール生成サーバーが Content-type: message/rfc822 の後に含めるべきデータを一部削除した状態で送信エラーメールを生成し、そのメールを Domino 8.5.1 以前のリリースで受信した場合には、"Memo"フォームが使用された送信エラーメールを受信します。


Ⅳ.「 MEMO 」フォームが採用されるケース(2)」に関して IBM Domino 側の対応

IBM Domino 側での対応として、「送信元メールがマルチパートであるが一部データが削除され送信元メールのバウンダリ情報が残存しているケース」に限り、Domino 側で Itemize 処理や MIME-CD 変換処理を正しく行うようにして欲しいとの改善要望が問題報告番号 HKAI7PK767 として報告され、IBM Domino 8.5.2 において実装が行われています。

また、不整合の発生している MIME フォーマットを含むメールに対して MIME データの Itemize 処理を行う際に SMTP リスナータスクがハングアップする事象が問題報告番号 NORK88VQ6P で報告され、Domino 8.5.2 FP1 と Domino 8.5.3 で修正されています。

Content-type: message/rfc822 の後に続くべきデータが一部除外されていても IBM Domino 側で正しく Itemize 処理を行い送信エラーレポート用のフォームで表示可能とする Domino のリリースは以下のいずれかです。

・ Domino 8.5.2 適用し、さらに Domino 8.5.2 FP1 以降の FP を適用する
・ Domino 8.5.3 を適用する

ただし、本事象の発生有無にかかわらず、Fix Pack は常に最新のバージョンを適用することを推奨します。

(参考)Lotus Notes/Domino の メンテナンスリリース、Fix Pack および Upagrad Pack の違いについて」(Technote #1466687)

V. MIME メッセージの具体例

注意:説明のために一部データを省略したり実在しない文字列を使用しています。

--「送信エラーレポート」が採用されるケースその 1

<エラーメール生成サーバーが構成したメッセージヘッダ>
Content-Type: multipart/report; report-type=delivery-status; boundary="==ABCDE"

//エラーメール生成サーバーの入れたメッセージ本文//

boundary="==ABCDE"
content-type: message/delivery-status

Reporting-MTA: <host name>
Received-From-MTA: <host name>

Final-Recipient: RFC822; <host name>
Action: failed
Status: 5.1.1
Remote-MTA: <host name>
Diagnostic-Code: SMTP; 550 5.1.1 <メールアドレス>... User Unknown

boundary="==ABCDE"
Content-type: message/rfc822

<Domino 側より送付されたメッセージオリジナルのヘッダ>

Content-type: multipart/mixed;
Boundary="FGHIJ"
Content-Disposition: inline

Boundary="FGHIJ"
Content-type: text/plain; charset=ISO-2022-JP

//Domino 側より送付されたメッセージ本文//

Boundary="FGHIJ"
Content-type: text/plain;
name="xxx"
Content-Disposition: attachment; filename="xxx"
Content-transfer-encoding: base64

//添付ファイルエンコード部分//

Boundary="FGHIJ"

boundary="==ABCDE"

--「送信エラーレポート」が採用されるケースその 2
<エラーメール生成サーバーが構成したメッセージヘッダ>
Content-Type: multipart/report; report-type=delivery-status; boundary="==ABCDE"


//エラーメール生成サーバーの入れたメッセージ本文//

boundary="==ABCDE"
content-type: message/delivery-status

Reporting-MTA: <host name>
Received-From-MTA: <host name>

Final-Recipient: RFC822; <host name>
Action: failed
Status: 5.1.1
Remote-MTA: <host name>
Diagnostic-Code: SMTP; 550 5.1.1 <メールアドレス>... User Unknown

boundary="==ABCDE"
Content-type: message/rfc822

<Domino 側より送付されたメッセージオリジナルのヘッダ>

Content-type: text/plain; charset=ISO-2022-JP
//Domino 側より送付されたメッセージ本文//

boundary="==ABCDE"

-- "Content-Type: multipart/report" を含むが「 MEMO 」が採用されるケースの例
の箇所が、データが全く存在せず欠落している状態であることを意味します。"※"というデータが実際に入っている状態ではありません。
<エラーメール生成サーバーが構成したメッセージヘッダ>
Content-Type: multipart/report; report-type=delivery-status; boundary="==ABCDE"

//エラーメール生成サーバーの入れたメッセージ本文//

boundary="==ABCDE"
content-type: message/delivery-status

//エラー理由等の記載//

boundary="==ABCDE"
Content-type: message/rfc822

<Domino 側より送付されたメッセージオリジナルのヘッダ>

Content-type: multipart/mixed;
Boundary="FGHIJ"
Content-Disposition: inline



boundary="==ABCDE"

Document information

More support for: IBM Domino
Mail Server

Software version: 8.0, 8.5, 9.0

Operating system(s): Platform Independent

Reference #: 1997124

Modified date: 06 August 2017


Translate this page: