2011-12-11 23 views
4

多くのクライアントにメッセージを送信する必要があります。しかし、彼らの多くは戻ってくる。それらの電子メールアドレスのリストが必要です。 Javaアプリケーションからそのリストを取得するにはどうすればよいですか?Javaメールの返信メールのアドレス

+0

から、これが過度に広範である.... –

+0

私はその – clyfe

答えて

3

バウンスされたすべての電子メールを分析するために特別な電子メールアドレス[email protected]を作成します。

は、あなたの送信された電子メールに以下のヘッダを追加します。

Return-Path: <[email protected]> 

は今、電子メールは戻って、そのアドレスにバウンスしようとしています。 IMAP経由で例えば時間までの時間からJavaプログラムからそのアドレスの

読む電子メール、(通知インタフェースを介して、または使用しているサーバーに応じて/何でも)、そしてあなたは、データベース内のメールアドレスレコードそれを見たときに

ニュースレターアプリを使用している場合は、最初から電子メールをブラックリストに載せるのではなく、バウンスを数え、3-4回バウンスした後にブラックリストに載せてください(バウンス中にバウンスするようにメールを設定する人もいますそれで彼らは特別な世話を必要とする)。

+0

感謝clyfeに反対。私は自分のアプリケーションが自動的にそれをしたい。 – user1092110

+0

「自動的に」とはどういう意味ですか?それが完了した方法です、あなたはそれを行う必要があります! – clyfe

+0

ありがとうclyfe、私はそれをやった!ご助力ありがとうございます。その完璧に動作します。しかし私はまだいくつかの問題を抱えています。アプリケーションを実行すると、バウンスされたすべてのメール(新旧古い、読んだり未読)を読み込みます。私は自分のアプリケーションが新しいメッセージだけを読むようにしたい。私はそれをするのを助けてくれますか? – user1092110

1

私は

SMTPMessage msg = new SMTPMessage(getSession()); 
msg.setEnvelopeFrom(bounceAddr); 

を使用してこの問題を解決するためのJavaMailのドキュメントを参照し、それを参照してください。

void com.sun.mail.smtp.SMTPMessage.setEnvelopeFrom(String from) 

は、SMTPエンベロープに表示されるFromアドレスを設定します。これは、メッセージ自体に表示される差出人アドレスとは異なります。エンベロープのFromアドレスは、通常、エラーを報告するときに使用されます。詳細については、RFC 821を参照してください。

設定すると、mail.smtp.fromプロパティが無効になります。

パラメータ: 封筒からアドレス

関連する問題