Comment gérer l'erreur dans Messaging.sendEmail ()?
-
10-10-2019 - |
Question
J'écrit le code pour envoyer un courriel. Il fonctionne très bien, mais mon objectif est:
Quand quelqu'un a envoyé à l'adresse e-mail non-existante, je veux enregistrer le résultat comme « faux » ou « échec » etc (et lorsque l'adresse e-mail est valide, dites « succès »)
J'ai essayé 2 choses avec le code ci-dessous.
-
fourni chaîne non email 'foo @!
-
fourni adresse e-mail non-existante 'thisdoesnotexistignsdfkjsdf@gmail.com'
Résultat:
Exécuter cas 1 du code causé à entrer dans catch block
sortant ainsi un message d'erreur sur la page html qui est prévu.
Exécuter le cas 2 causé code pour revenir 'ok sent!'
Et après quelques minutes, j'ai reçu email que la livraison a échoué.
Je pense isSuccess () de l'objet SendEmailResult est pas vraiment responsable de la vérification d'adresse e-mail non-existante. Il ne se soucie que si l'e-mail est tiré ???
Est-il possible de se connecter si le compte de messagerie n'existe pas pour que je puisse connecter cette occasion dans mon code Apex?
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();
}
La solution
E-mail (SMTP) est un magasin et d'un protocole en avant, au moment de l'envoi, vous ne pouvez pas dire que l'adresse e-mail de destination est inexistante, vous ne pouvez constater que une fois le message se fait à la destination finale serveur.
Autres conseils
s'il y avait un moyen de trouver l'adresse e-mail si elle existe réellement ou non, un spammeur aurait essayé force brutale attaque - essayer toutes les combinaisons possibles d'e-mail et l'envoi infini spams:)
Dieu merci, ce n'est pas possible.