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.
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
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. –
Ich habe das Debuggen immer noch nicht aktiviert, aber ich habe die Frage mit weiteren Informationen aktualisiert. – Gustavo