Bonjour à tous.
Permettez moi d'apporter une petite contribution théorique...
J'ai installé spip sur un système gérant les envois d'emails de manière
particulière. J'ai testé un formulaire de contact fait maison et
surprise les messages indiquaient que tout se passait bien mais l'email
n'était pas envoyé. Même chose dans les autres formulaires existants.
Après avoir décortiquer le fonctionnement, il s'avère que les
formulaires ne prennent pas en compte les erreurs d'envoi. Exemple sur
un codage typique :
function formulaires_ecrire_auteur_traiter_dist($id_auteur, $id_article,
$mail){
(... ici préparation de l'email...)
$envoyer_mail = charger_fonction('envoyer_mail','inc');
$envoyer_mail($mail, $sujet, $texte, $adres,
"X-Originating-IP: ".$GLOBALS['ip']);
$message = _T("form_prop_message_envoye");
return array('message_ok'=>$message);
}
Dans tous les cas, le message sera "ok". Le cas de l'échec de l'envoi
n'est pas envisagé. Le pire est que le message transmis n'est pas
"loggué" au sein de "envoyer_mail" donc le risque de perte de message
est important.
Plusieurs solutions sont possibles pour éviter toute perte d'information
(l'une n'éliminant pas l'autre) :
+ tenir compte de l'échec de l'envoi et utiliser spip_log en cas d'échec
+ modifier toutes les fonctions envoyant des emails pour afficher un
message d'échec de l'envoi
+ tester la fonction d'envoi des emails lors de l'installation de spip :
un envoi d'un message de test à l'adresse de l'installateur lui
demandant de vérifier la bonne réception du message. En cas de non
réception lui donner des pistes pour corriger le problème...
Cordialement.