发送失败异常:无效地址 - 但异常中没有无效地址

  • 本文关键字:地址 异常 无效 失败 jakarta-mail
  • 更新时间 :
  • 英文 :


>我正在尝试向多个收件人发送邮件。我正在做非常标准的事情:

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:[...@gmail.com, ...@hotmail.com, ...@live.com, ...]
-valid sent:null

基本上,它说有一个或多个无效地址,然后说没有无效地址。无效地址数组不应该至少有一个电子邮件地址吗?

更新SendFailedException是由另一个异常引起的,并显示以下消息:

451 4.3.0:临时查找失败

邮件中的无效地址可能不是来自任何收件人,而是来自发件人。

看起来您没有向邮件服务器进行身份验证,因此它可能不允许您发送到非本地地址。 (是的,在这种情况下,错误消息不是很有帮助。