Nous avons un programme de threads qui envoie du courrier en bloc. Les informations commeAuthentification Échec de l'exception - Au milieu de l'envoi de courrier en masse code
1. To
2. Subject
Etc.
sont extraites de la base de données, le courrier est composé et poussé vers le serveur SMTP. Un de nos clients a envoyé un courrier en nombre avec 2390 email. Après avoir envoyé 40 e-mails, tout à coup l'exception suivante est survenue
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)
et les e-mails 2350 reste a échoué.
Pourquoi cela se produit-il?
Merci pour les suggestions et une aide
Ezhil
=============================== ===============
Mon code:
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();
}
===================== ================
Oui, il y a une chance pour que le serveur smtp obtienne déconnecté ou ne pas répondre depuis son programme de thread, je peux dire au cas max plus de 1000 mails peut être poussé dans le serveur smtp en même temps.
A tout casting, va lancer le serveur 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)
si elle ne peut pas servir notre demande
=============
encore J'ai besoin de regarder dans le journal du serveur SMTP.
Ezhil
Pouvez-vous poster le code pour l'envoi? Le serveur SMTP peut-il vous déconnecter après un certain nombre de messages? – JoseK
Vérifiez vos journaux de serveur SMTP, cela peut vous conduire à la raison réelle du problème. – mindas
J'ai mis à jour ma question – Ezhil