Jakarta mail SendFailedException:无效地址-但异常中没有无效地址

Jakarta mail SendFailedException:无效地址-但异常中没有无效地址,jakarta-mail,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.setRep

我正在尝试向多个收件人发送邮件。我做的是相当标准的事情:

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:临时查找失败


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

它看起来不像您,因此可能不允许您使用。(是的,在这种情况下,错误消息没有太大帮助。)

它看起来不像是您的,所以它可能不允许您。(是的,在这种情况下,错误消息没有多大帮助。)

邮件服务器不需要身份验证。正如我所说的,它大部分时间都有效。它总是向外部地址发送电子邮件(每条消息大约有20个收件人)。我希望在例外情况下找到一些错误的电子邮件地址,但它们似乎很普通(除了一个@Gmail而不是@Gmail)。无论如何,如果无效地址数组为空,我认为消息不应该是“无效地址”。您认为这可能是错误报告中的一个错误吗?您可能需要查看以了解到底出了什么问题。我仍然没有启用调试,但我用更多信息更新了问题。是的,问题似乎是发件人地址的问题,而问题出在服务器上。邮件服务器不需要身份验证。正如我所说的,它大部分时间都有效。它总是向外部地址发送电子邮件(每条消息大约有20个收件人)。我希望在例外情况下找到一些错误的电子邮件地址,但它们似乎很普通(除了一个@Gmail而不是@Gmail)。无论如何,如果无效地址数组为空,我认为消息不应该是“无效地址”。您认为这可能是错误报告中的一个错误吗?您可能需要查看以了解到底出了什么问题。我仍然没有启用调试,但我用更多信息更新了问题。是的,看起来问题出在发件人地址上,而问题出在服务器上。