Notifier échec des mails "important" qu'en cas d'échec définitif
Actuellement, un mail d'échec est envoyé dès lors qu'une tentative d'envoi d'un mail 'important' échoue.
Je m'alerte et constate que le mail est bien arrivé.
En effet, cf la notification a lieu dès le premier envoi échoué, alors qu'il y a plusieurs essais.
À la réflexion ça me semble un bug, parce qu'il n'y a qu'une chose qui compte : que le mail arrive. Et pas les moyens intermédiaires techniques, comme quels serveurs sont utilisés pour le transfert, ou le passage exceptionnel par avian carrier, ou le fait qu'un 1er essai échoue. Ces éléments techniques peuvent être signalés par un log, mais ne nécessitent pas un mail. Ou en tout cas, le fait de savoir qu'un mail arrive ou pas, réellement, est beaucoup plus important que le fait de savoir qu'un premier essai échoue alors que plusieurs autres sont encore prévus.
// Code simplifié
// si c'est un mail important, preparer le forward a envoyer en cas d'echec...
if ($important and $dest_alertes = $facteur->Sender) {
... $sujet_alerte = _T('facteur:sujet_alerte_mail_fail', ['dest' => $dest, 'sujet' => $sujet]);
... $args[1] = $sujet_alerte;
... $args[2]['important'] = false; // ne pas faire une alerte sur l'envoi de l'alerte etc.
... $facteur->setSendFailFunction('envoyer_mail', $args, 'inc/');
}
// indiquer au facteur si c'est un essai final ou non
$facteur->setIsFinalTry($try >= _FACTEUR_NOMBRE_ESSAIS_ENVOI_MAIL);
$retour = $facteur->Send();
Du coup, serait il possible de n'envoyer un mail d'échec qu'en cas d'échec final ?
Eventuellement configurer ce choix par une config ou une constante...