2017-08-08 1 views
0

Ich versuche, eine Nachricht an mehrere Empfänger zu senden. Ich mache ziemlich Standard Sache:SendFailedException: Ungültige Adressen - aber es gibt keine ungültigen Adressen in der Ausnahme

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

Die meiste Zeit es funktioniert, ein paar Mal nicht. Die Ausnahme, die ich bekomme, ist . Wenn ich den Inhalt der Ausnahme drucke ich diese:

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

Im Grunde sagt, es gibt es ein oder mehrere ungültige Adressen und dann sagt, es gibt keine ungültige Adresse ist. Sollte das ungültige Adressen-Array nicht mindestens eine E-Mail-Adresse haben?

UPDATE Die SendFailedException wird durch eine weitere Ausnahme mit der folgenden Meldung verursacht:

451 4.3.0 <sender_email_address>: Temporäre Lookup-Fehler

Vielleicht ist die ungültige Adresse in der Nachricht kommt von keinem der Empfänger, sondern vom Absender.

Antwort

0

Es sieht nicht so aus, als wären Sie authenticating to your mail server, also lässt es Sie wahrscheinlich nicht send to non-local addresses. (Ja, die Fehlermeldung ist in diesem Fall nicht sehr hilfreich.)

+0

Der Mail-Server erfordert keine Authentifizierung. Wie gesagt, es funktioniert die meiste Zeit. Es sendet immer E-Mails an externe Adressen (ca. 20 Empfänger pro Nachricht). Ich hatte gehofft, in der Ausnahme eine falsche E-Mail-Adresse zu finden, aber sie scheinen ziemlich gewöhnlich zu sein (außer einem @ Gmail anstelle von @ Gmail). Wie auch immer, wenn das ungültige Adressfeld leer ist, denke ich, dass die Nachricht nicht "ungültige Adressen" sein sollte. Denkst du, es könnte ein Fehler in der Fehlerberichterstattung sein? – Gustavo

+1

Sie müssen sich wahrscheinlich die [vollständige Protokoll-Ablaufverfolgung] (https://javaee.github.io/javamail/FAQ#debug) ansehen, um zu sehen, was wirklich schief läuft. –

+0

Ich habe das Debuggen immer noch nicht aktiviert, aber ich habe die Frage mit weiteren Informationen aktualisiert. – Gustavo

Verwandte Themen