2

Spring Java メーラー クラスを使用して、ユーザーに電子メール メッセージを送信しています。

失敗した電子メールのバウンス バック メッセージを、SMTP サーバーと同じドメインを持たないユーザーの電子メール アドレスに送信するように設定したいと考えています。これを達成する方法を知っている人はいますか?例: 私のシステムは email-does-not-exist@gmail.com に電子メールを送信します。私の smtp サーバーはドメイン somebusiness.com を持つように構成されています。失敗したら、バウンスバックを私のユーザーに送信します: test.user@gmail.com.

次の記事を何度か読みました: メールのバウンスバック アドレスを指定する

mail.smtp.from プロパティを設定する方法を使用しようとしましたが、メールはまったく送信されません (無効なメールからのバウンスバック試行もまだカウントされていません)。

Properties p = new Properties();
p.put("mail.smtp.from", "test.user@gmail.com"); //If I comment this out, it sends emails again
mailSender.setJavaMailProperties(p);
Session session = Session.getDefaultInstance(p, null);
MimeMessage mimeMessage = new MimeMessage(session);

MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,
                false, "utf-8");
mimeMessage.setContent(emailBody, "text/html");
helper.setTo(toAddress);
helper.setSubject(subject);
helper.setFrom(fromAddress);
mailSender.send(mimeMessage);

誰でも理由がわかりますか?明らかな答えは、私たちが使用しているsmtpサーバーがそれをブロックしているようですが、私は潜在的な他のアイデアを望んでいました.

4

2 に答える 2

0

Apache Commons Mail がバウンス機能を実装する方法を確認したところ、実際には送信元アドレスを設定するだけです。クラスの setFrom(...) によってSpring Mailで同じことができることを意味しますorg.springframework.mail.javamail.MimeMessageHelper

org.apache.commons.mail.Emailクラスのソース コード スニペット:

if (this.bounceAddress != null) {
    properties.setProperty(MAIL_SMTP_FROM, this.bounceAddress);
}

ソースで参照してください: http://grepcode.com/file/repo1.maven.org/maven2/org.apache.commons/commons-email/1.2/org/apache/commons/mail/Email.java#539

于 2015-01-19T16:03:48.950 に答える
0

私は同様の問題を抱えています。まだ解決策はありませんが、Springのメールパッケージは簡単な方法org.apache.commons.mailなので、差し替えを検討中です。setBounceAddress(emailAddressString)

ユーザー ガイドの最後のセクション「バウンス メッセージの処理」を参照してください。

http://commons.apache.org/proper/commons-email//userguide.html

そしてAPIドキュメント:

http://commons.apache.org/proper/commons-email//apidocs/org/apache/commons/mail/Email.html#setBounceAddress(java.lang.String)

于 2013-02-28T23:41:47.947 に答える