当我向少数人发送电子邮件时,我的电子邮件代码效果很好,但当我发送给所有联系的用户(177)时,我收到此错误:
[ERROR] - org.apache.commons.mail.EmailException: Sending the email to the following server failed : hlrdwd.com:25
代码如下:
HtmlEmail email = new HtmlEmail();
email.setCharset("utf-8");
if (vo.getContent() != null && vo.getContent().trim().length() > 0) {
email.setHtmlMsg(vo.getContent());
} else {
email.setHtmlMsg(" ");
}
email.setSubject(vo.getTitle());
email.setFrom(vo.getSender(), currentuname);
email.setHostName(Property.getSmtp());
List<Map<String, String>> toList = mm.formatAddress(vo
.getReceiver());
if (toList != null) {
for (int i = 0; i < toList.size(); i++) {
Map<String, String> tMap = toList.get(i);
email.addTo(tMap.get(mm.KEY_EMAIL), tMap.get(mm.KEY_NAME));
System.out.println(tMap.get(mm.KEY_EMAIL));
}
}
email.setAuthentication(currentuser, password);
String messageid = email.send();
我谷歌这个并添加email.setTLS(true);
,但仍然无法正常工作。等你的帮忙!
答案 0 :(得分:1)
问题是接收邮件服务器不喜欢同时发送给太多人的邮件。作为参考,默认情况下,后缀拒绝超过50个收件人的邮件。
最简单的解决方案是发送多条消息,而不是一次发送给所有人。在极端情况下,您可以为每个用户发送一条消息 - 然后您可以根据需要自定义消息,这也使他们不太可能被过滤为垃圾邮件。