2017-08-08 22 views
0

複数の受信者にメッセージを送信しようとしています。私はかなり標準的なことをやっている:SendFailedException:無効なアドレス - 例外に無効なアドレスがありません

Properties p = new Properties(); 
p.setProperty("mail.smtp.host", "my.smtp.host"); 

Session session = Session.getInstance(p); 
MimeMessage msg = new MimeMessage(session); 
msg.setFrom(new InternetAddress(origin)); 
msg.setReplyTo(new InternetAddress[]{ new InternetAddress(replyTo) }); 
for(String address : destinations) { 
    msg.addRecipient(Message.RecipientType.BCC, new InternetAddress(address)); 
} 
msg.setSubject("foo"); 
msg.setText("bar"); 
msg.setSentDate(new Date()); 
Transport.send(msg); 

ほとんどの場合、それは動作しません。例外はSendFailedException: Invalid Addressesです。私は例外の内容を印刷するとき、私はこれを取得:

-ivalid:[] 
-valid unsent:[[email protected], [email protected], [email protected], ...] 
-valid sent:null 

基本的には1つ以上の無効なアドレスがあると言うと、それは無効なアドレスが存在しないと言います。無効なアドレス配列に少なくとも1つの電子メールアドレスを設定してはいけませんか?

UPDATE SendFailedException次のメッセージで別の例外によって引き起こされる:

451 4.3.0 <SENDER_EMAIL_ADDRESS>:たぶん一時的なルックアップ失敗

メッセージで無効なアドレス受信者からではなく送信者からのものです。

答えて

0

あなたはauthenticating to your mail serverのようには見えないので、恐らくあなたにはお返しできません。send to non-local addresses (はい、エラーメッセージはこの場合はあまり役に立ちません)

+0

メールサーバーは認証を必要としません。私が言ったように、それはほとんどの時間で動作します。それは常に外部のアドレスに電子メールを送ります(メッセージあたり約20人の受信者)。私は例外で間違った電子メールアドレスを見つけることを望んでいましたが、彼らはかなり普通です(@ gmailではなく@Gmailを除いて)。とにかく、無効なアドレス配列が空の場合、私はメッセージが "無効なアドレス"であってはならないと思います。エラー報告のバグかもしれないと思いますか? – Gustavo

+1

何が本当に間違っているのかを知るには、おそらく[フルプロトコルトレース](https://javaee.github.io/javamail/FAQ#debug)を見る必要があります。 –

+0

私はまだデバッグを有効にしませんでしたが、私は質問で更なる情報を更新しました。 – Gustavo

関連する問題