J'ai écrit un code pour envoyer un courriel. Cela fonctionne bien mais mon but est:Comment gérer les erreurs dans Messaging.sendEmail()?
Quand quelqu'un a envoyé à l'adresse électronique inexistante, je veux enregistrer le résultat comme 'faux' ou 'échec' etc. (et quand l'email address est valide, dites juste 'succès'
J'ai essayé 2 choses avec le code ci-dessous.
fourni non-mail chaîne 'foo @!'
a fourni l'adresse e-mail non-existante '[email protected]'
Résultat:
Exécuter cas 1 a causé un code à entrer dans catch block
sortant ainsi un message d'erreur sur la page html ce qui est attendu.
Exécuter cas 2 a provoqué le code pour revenir 'ok sent!'
Et après quelques minutes, je reçu email que la livraison a échoué.
Je suppose que isSuccess() de l'objet SendEmailResult n'est pas vraiment responsable de la vérification de l'adresse e-mail non existante. Il se soucie seulement si l'email est viré ???
Existe-t-il un moyen de se connecter si le compte de messagerie n'existe pas afin que je puisse enregistrer une telle 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();
}
J'ai lu la documentation aussi et semble que la journalisation immédiate n'est pas supportée à cet effet :(Merci pour l'info. –