- ベストアンサー
JavaMailでエラーメールの通知
ヤマトです。こんにちは。 JavaMailに関し、質問があります。 JavaMailを作成したのですが、送信時に、 間違った[送信メールアドレス]を設定し送信した場合、 件名:Returned mail: see transcript for details で送信者へ返信されます。 以上の現象は、普通のメーラーでも起きている現象と同じです。 しかし、以上のエラーメール通知を送信者以外には設定できないのでしょうか? // 送信者の設定(送信者アドレス・送信者名) mimeMessage.setFrom(new InternetAddress(FromMailAddress, FromMailName,"iso-2022-jp")); 現状は FromMailAddress のメールアドレスにエラーの通知が来てしまいます。 知ってる方がいらっしゃったら、教えて頂きたいのですが。 宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>今なぜそのアドレスに返らないか Error-to:ヘッダはRFC(メールを定義している文)に記述されていないため、 対応していない MTA(メールサーバ)が多いのです。 つまりMTAによってError-toにreturned mailが送られるかもしれないし 送られないかもしれないと。 メールっていうのはコネクションレス通信 (相手が受け取ったかどうか確認しない通信) の為、確実にっていうのは不可能です。
その他の回答 (2)
- sha-girl
- ベストアンサー率52% (430/816)
returned mailは 必ずsubjectが「Returned mail: see transcript for details 」 と決まっているわけでもないですし、 間違ったアドレスに対して必ず通知返信してくるとも限りません。 結局受け取ったメールサーバの設定次第なのです。 普通Fromに書かれたアドレスに返信します。 それはこちらでどうこうできるものではありません。 強いてやるとすれば Fromの受信BOXにあるメールのヘッダをチェックしreturned mailを判定 そのメールを転送するって感じでしょうか。
お礼
sha-girlさん。 回答ありがとうございます。 setHeaderでError-Toの指定が出来ない場合は、 教えて頂いた方法でやろうかと思います。
- m_hagizo
- ベストアンサー率65% (31/47)
すみません、JavaMailは使ったことがないので、推測で言います。 一般のメールクライアントですと、エラーメールの戻り先はErrors-Toというメールヘッダで設定できるはずです。 よって、setHeader()を使って下記のようなやり方で、これを設定してあげればよいのでは? mimeMessage.setHeader("Errors-To", "foo@*******.com"); 実行時にエラーになってしまうかもしれませんが…。
お礼
m_hagizoさん 回答ありがとうございます。 教えて頂いたやり方で試しました。 コンパイルは正常に出来たのですが、エラーメールが、 Errors-Toで指定したアドレスに返信されませんでした。 メールのヘッダ情報を見てみるとError-Toに指定したアドレスが設定されていました。 今なぜそのアドレスに返らないか調べています。
お礼
sha-girlさん お返事遅れてすみません。 やはりそうですか。 色々調べて頂きありがとうございました。