Envoi de mail : récupération de l'erreur

4.0
Tags: #<Tag:0x00007f3619bdf398>
Envoi de mail : récupération de l'erreur
0.0 0

#1

Bonjour,

j’utilise la méthode new Mail() pour envoyer un mail lors de certaines actions.

quand l’adresse du destinataire n’est pas bonne, je pensais récupérer une erreur dans le catch. Mais ce n’est pas le cas. comment faire pour indiquer à l’utilisateur que l’adresse fournie n’a pas permis d’envoyer le mail ?

try {
var mailer = new Mail(this.getGrant());
mailer.send(
"from@mydomain.com",
"to@mydomain.com",
“Subject”,
“Hello World !”);
} catch (e) {
console.error(“Error sending mail” + e.getMessage());
}


#2

Ce catch ne peut tracer que des erreurs techniques d’envoi via SMTP (email mal formatté, serveur SMTP HS, timeout…). Le Protocole SMTP est purement asynchrone et n’a pas d’acquittement, ni de validation de destinataire…

L’acquittement de bonne réception est donc nécessairement applicatif = un lien explicite (“cliquez ici si vous avez reçu les pièces jointes”) ou non (une image cachée avec URL=service) dans l’email qui va aller mettre à jour un flag “email reçu/lu” dans votre application.

Le marketing utilise souvent des images “bidons” dans l’email <img src="https://...?context=..." style="display:none"/> pour savoir si la pub a été ouverte/lue. L’url dans notre cas serait un accès à un objet externe en zone PUBLIC avec des paramètres de contexte (le n°dossier ou le row_id du document envoyé…) pour faire la mise à jour en base 'email lu", et qui retournerait une fausse image de 1 pixel.


#3

Sinon il faut définir un processus de validation d’email à la création du dossier/compte avec un lien explicite pour activer l’email. “Bonjour, Merci d’activer votre compte email en cliquant ici…” envoyé à l’email en question.

La qualification d’un email est donc une problématique de processus métier MOA et non de catch technique MOE.