gpt4 book ai didi

java - 身份验证失败异常 - 在批量邮件发送代码中

转载 作者:行者123 更新时间:2023-12-02 08:32:56 26 4
gpt4 key购买 nike

我们有一个发送批量邮件的线程程序。信息如

1. To
2. Subject
Etc.

从数据库中获取邮件,编写邮件并将其推送到 SMTP 服务器。我们的一位客户发送了一封包含 2390 电子邮件的批量邮件。发送40封邮件后,突然出现如下异常

EXCEPTION
javax.mail.AuthenticationFailedException

STACKTRACE
javax.mail.Service.connect(Service.java:306)
javax.mail.Service.connect(Service.java:156)
javax.mail.Service.connect(Service.java:105)
...............
java.lang.Thread.run(Thread.java:619)

其余 2350 封电子邮件失败。

为什么会出现这种情况?

感谢您的建议和帮助

埃日尔

==================================================

我的代码:

Session session = Session.getInstance(properties, new SMTPAuthenticator(smtpAuthenticationBean.getUserName(), smtpAuthenticationBean.getPassword()))) : (Session.getInstance(properties, null))
for each email id
{

InternetAddress iAddress = new InternetAddress(getFromHeader(jobListBean.getFromDisplayName(), jobListBean.getFromEmail()));
Multipart multipart = new MimeMultipart(); // By default, Content Type is "mixed"


msg.setSubject(jobListBean.getSubject());
msg.setSentDate(new Date());

// Set Internet Headers
msg.setHeader("Importance", priorityType);

msg.setHeader("Disposition-Notification-To", jobListBean.getFromEmail());

FileDataSource fds = new FileDataSource(tempAbsoluteFileName);
MimeBodyPart htmlBodyPart = new MimeBodyPart();

String fileContent = org.objectstyle.woproject.util.FileStringScanner.stringFromFile(new File(tempAbsoluteFileName));
htmlBodyPart.setText(fileContent);
multipart.addBodyPart(htmlBodyPart);

msg.setContent(multipart);

InternetAddress address[] = InternetAddress.parse(emailList.toString(), true);

Transport smtpTransport = session.getTransport();
smtpTransport.addTransportListener(this);

smtpTransport.connect();

smtpTransport.sendMessage(msg, address);

smtpTransport.close();

File file = new File(tempAbsoluteFileName);
file.delete();
}

======================================

是的,smtp 服务器有可能会断开连接或无响应由于它的线程程序,我可以说最大情况下超过 1000 封邮件可以同时推送到smtp服务器。

在任何强制转换中,smtp 服务器都会抛出

EXCEPTION
javax.mail.AuthenticationFailedException

STACKTRACE
javax.mail.Service.connect(Service.java:306)
javax.mail.Service.connect(Service.java:156)
javax.mail.Service.connect(Service.java:105)
...............
java.lang.Thread.run(Thread.java:619)

如果它无法满足我们的请求

============

我仍然需要查看 SMTP 服务器日志。

埃日尔

最佳答案

AuthenticationFailedException 与您的代码无关,当 SMTP 服务器返回身份验证失败时会引发该异常。

来自javadoc :

This exception is thrown when the connect method on a Store or Transport object fails due to an authentication failure (e.g., bad user name or password).

因此,您需要调查您的邮件服务器,找出为什么它接受某些邮件而不接受其他邮件。我能想到的一件事是某种速率限制机制。

关于java - 身份验证失败异常 - 在批量邮件发送代码中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2787112/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com