Frage

Ich schrieb Code E-Mail senden. Es funktioniert gut, aber mein Ziel ist:

Wenn jemand auf nicht vorhandene E-Mail-Adresse gesendet, mag ich das Ergebnis als ‚falsch‘ protokollieren oder ‚Versagen‘ usw. (und wenn E-Mail-Adresse gültig ist, sagen Sie einfach ‚Erfolg‘)

Ich habe versucht, zwei Dinge mit dem Code unten.

  1. zur Verfügung gestellt Nicht-E-Mail-String 'foo @!'

  2. bereitgestellt nicht existierende E-Mail-Adresse 'thisdoesnotexistignsdfkjsdf@gmail.com'

Ergebnis:

Ausführen Fall 1 verursachte Code in catch block geht somit Fehlermeldung ausgibt, auf der HTML-Seite, die erwartet wird.

Ausführen Fall 2 verursachte Code zurück 'ok sent!'

Und nach wenigen Minuten erhielt ich E-Mail, dass die Lieferung nicht.

Meine Vermutung ist, SendEmailResult Objekts isSuccess () ist nicht wirklich verantwortlich für die nicht vorhandene E-Mail-Adresse zu überprüfen. Es kümmert sich nur, wenn die E-Mail ???

gebrannt

Gibt es eine Möglichkeit zu protokollieren, wenn die E-Mail-Konto ist nicht vorhanden, so ich eine solche Gelegenheit in meinem Apex Code anmelden kann?

try {
    Messaging.SendEmailResult[] resultMail = Messaging.sendEmail(new
            Messaging.SingleEmailMessage[] { mail });

    resultMail[0].getErrors();

    //display success or error message
    if (resultMail[0].isSuccess()) {
        response = 'ok sent!';
    } else {
        response = resultMail[0].getErrors().get(0).getMessage();
    }

    //log
    boolean isSuccess = resultMail[0].isSuccess();
    Integer out = EmailLogger.logEmailSent(this, isSuccess);
} catch (System.EmailException ex) {
    system.debug('============== email exception caught!!!=============');
    response = ex.getMessage();
}
War es hilfreich?

Lösung

E-Mail (SMTP) ist ein Speicher- und Weiterleitungsprotokoll, zum Zeitpunkt des Versands, kann man nicht sagen, dass das Ziel E-Mail-Adresse ist nicht existierend, können Sie nur das herausfinden, sobald die Nachricht tatsächlich bekommt zum Endziel Server.

Andere Tipps

Wenn es eine Möglichkeit gäbe E-Mail-Adresse zu finden, ob es wirklich existiert oder nicht, könnte ein Spammer versucht, Brute-Force-Angriff hat - jede mögliche Kombination von E-Mail versuchen und Senden unendlich Spams:)

Gott sei Dank, das ist nicht möglich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top