wie auflösen Adresse Ungültige Ausnahme

8

Wir haben versucht, Nachrichten mit javax.mail zu senden. Beim Senden von Mails haben wir folgende Ausnahme erhalten:

%Vor%

Was könnte das Problem sein?

    
Qix 28.02.2013, 09:27
quelle

2 Antworten

11

Dies bedeutet, dass der empfangende Server das Postfach (den Teil vor dem '@') der E-Mail-Adresse nicht erkennt. Es könnte sein, dass es falsch geschrieben wurde, dass es einfach ein nicht existierender Name ist, oder dass der empfangende Server so eingestellt wurde, dass er eine Nachricht (z. B. Spam) ablehnt, indem er mit Code 550 antwortet.

Hier ist eine von vielen Seiten, die die SMTP-Antwortcodes zusammenfasst und Links zu verschiedenen relevanten RFCs enthält: Ссылка .

BEARBEITEN: Ich brauche etwas mehr Platz, um Ihre Frage zu beantworten, als die Kommentare zulassen.

@RaghuKing, wenn Sie das Javadoc für javax.mail.SendFailedException betrachten, werden Sie feststellen, dass Sie 3 Methoden für ein solches Ausnahmeobjekt aufrufen können (innerhalb des Blocks catch ):

  • getInvalidAddresses() , um ein Array von Adressen zu erhalten, die ungültig sind und daher nicht gesendet werden,
  • getValidSentAddresses() , um ein Array von Adressen zu erhalten, an die diese Nachricht erfolgreich gesendet wurde, und
  • getValidUnsentAddresses() , um ein Array von Adressen zu erhalten, die gültig sind, an die die Nachricht jedoch nicht gesendet wurde.

(Wenn eine Nachricht an mehrere Empfänger gesendet wird, können einige erfolgreich sein und einige fehlschlagen, aber die Ausnahme wird ausgelöst, wenn mindestens ein Fehler auftritt, unabhängig davon, wie viele Erfolge erzielt wurden. Natürlich auch, wenn Sie nur eine Nachricht senden Adresse, Sie werden diese eine Adresse nur in einem dieser Arrays haben, und sie wird wahrscheinlich NICHT in der Liste ValidSent sein.

Diese Arrays geben Ihnen mehr Informationen darüber, wie Sie mit der Ausnahme umgehen, abhängig vom Typ des Arrays, in dem sich eine Adresse befindet. Dies hängt natürlich von Ihrer Anwendung ab, aber dies können sinnvolle Vorschläge sein:

  • Ungültige Adressen : Sagen Sie dem Benutzer, dass die Nachricht nicht gesendet wurde, weil die Adresse falsch war, für jede ungültige Adresse in der Liste und bieten Sie eine Möglichkeit, die Adresse zu korrigieren, und versuchen Sie dann, die Adresse erneut zu senden (oder Abbrechen, wenn der Benutzer keine andere Adresse angibt);
  • Gültige gesendete Adressen : Nicht erneut senden;
  • Gültige nicht gesendete Adressen : Versuchen Sie, diese Adressen erneut zu senden. Das Senden wurde wahrscheinlich beendet, bevor diese Adressen aufgrund einer früheren falschen Adresse gefunden wurden.

Aber am Ende müssen Sie den gesunden Menschenverstand anwenden und vielleicht ein wenig mit den Funktionen experimentieren, die Sie nicht verstehen, bis Sie sie verstehen.

    
fr13d 28.02.2013, 09:36
quelle
0

Hatte die gleiche Ausnahme erlebt. Ich erkannte, dass ich keine E-Mails an unbekannte Benutzer senden konnte. Nach Rücksprache fand ich heraus, dass unser SMTP-Server kein offener Mail-Relay-Server war, lesen Sie Open Mail Relay .

    
kabugima2 10.03.2016 05:45
quelle

Tags und Links