2017-08-08 5 views
0

J'essaie d'envoyer un message à plusieurs destinataires. Je fais la chose assez standard:SendFailedException: adresses non valides - mais il n'y a pas d'adresse invalide dans l'exception

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); 

La plupart du temps cela fonctionne, quelques fois il ne fonctionne pas. L'exception que je reçois est SendFailedException: Invalid Addresses. Lorsque j'imprime le contenu de l'exception que je reçois ceci:

-ivalid:[] 
-valid unsent:[[email protected], [email protected], [email protected], ...] 
-valid sent:null 

Fondamentalement, il dit qu'il ya une ou des adresses plus invalides et il dit qu'il n'y a pas d'adresse non valide. Le tableau d'adresses non valide ne devrait-il pas avoir au moins une adresse électronique?

MISE À JOUR Le SendFailedException est causée par une autre exception avec le message suivant:

451 4.3.0 <SENDER_EMAIL_ADDRESS>: échec de la recherche temporaire

Peut-être que l'adresse non valide dans le message n'est pas de l'un des destinataires mais de l'expéditeur.

Répondre

0

Il ne semble pas que vous soyez authenticating to your mail server, donc il ne vous laisse probablement pas send to non-local addresses. (Oui, le message d'erreur n'est pas très utile dans ce cas.)

+0

Le serveur de messagerie ne nécessite pas d'authentification. Comme je l'ai dit, cela fonctionne la plupart du temps. Il envoie toujours des e-mails à des adresses externes (environ 20 destinataires par message). J'espérais trouver une adresse e-mail erronée dans l'exception, mais ils semblent tout à fait ordinaires (à l'exception d'un @Gmail au lieu de @gmail). Quoi qu'il en soit, si le tableau d'adresses invalide est vide, je pense que le message ne devrait pas être "Invalid Addresses". Pensez-vous que cela pourrait être un bug dans le rapport d'erreurs? – Gustavo

+1

Vous aurez probablement besoin de regarder la [trace de protocole complet] (https://javaee.github.io/javamail/FAQ#debug) pour voir ce qui ne va vraiment pas. –

+0

Je n'ai toujours pas activé le débogage, mais j'ai mis à jour la question avec plus d'infos. – Gustavo