Envoyer des Mails chez Orange depuis Prestashop


Vous l'avez peut être remarqué à vos depends, mais la boite Mail d’Orange filtre les Spams sur le return-path (entre autre) des headers de chaque E-Mail et le problème, c’est que par défaut ce header est à “www-data” lorsque les Mails sont envoyés à partir de la fonction Mail() de PHP. Du coup, vos Mails n'arrivent même pas dans la boite Spams, ils sont tout simplement ignorés.

Prestashop utilise quant à lui une librairie (Swift), pour gérer l'envoie des Mails, et il n’a pas été facile de m’y retrouver afin de fixer ce problème de header, et donc de pouvoir envoyer des Mails aux destinataires Orange. A ma grande surprise, ce sujet -pourtant crucial- n'est que peu abordé dans les différents forums, alors je vous donne une soluce un peu “brutale”, mais qui a le mérite de fonctionner rapidement et sans beaucoup de code.

Une fois dans le répertoire de votre boutique, éditez /tools/swift/Swift/Plugin/MailSend.php, et rendez vous autour des ligne 158 à 161 qui doivent ressembler à ça :

$headers = $headers->build();
if (!ini_get("safe_mode")) $success = mail($to, $subject, $message, $headers, $params);
else $success = mail($to, $subject, $message, $headers);

Tout est dans le cinquième argument de la fonction Mail, où pour l’instant $params n’est pas initialisé. On va donc le faire directement ici :

$headers = $headers->build();
$params = "-f" . "administrateur@mon_nom_de_domaine.com";
if (!ini_get("safe_mode")) $success = mail($to, $subject, $message, $headers, $params);
else $success = mail($to, $subject, $message, $headers);

Voila, c’est tout. Je vous conseil aussi d’ajouter un SPF dans votre config de bind, si vous y avez accès, ainsi que valider votre domaine auprès du “sender-ID program” de chez Microsoft, si en prime vous voulez que les destinataires de chez Hotmail reçoivent eux aussi vos messages.

Pfiouuu…contourner les Anti spam maison des uns et des autres, franchement, c’est l’enfer.


Guillaume jeu 09 Mar 2011
Vous avez accès au Logs ?

Bonjour Yann !

Il y a pas mal de paramètres à vérifier en fait, mais une premiere chose interessante serait de vérifier dans les Logs d'apache et/ou du SMTP, si vous y avez accès.

Ensuite, vu que Prestashop utilise la fonction mail(), j'essayerai un mini script de 2 lignes qui ne fait qu'envoyer un mail, juste pour vérifier que c'est pas cette fonction qui pose problème chez votre hébergeur.

Contactez moi par Mail (via le formulaire de contact) si vous ne vous en sortez pas, je peux peut-être vous aider...

Yann mer 08 Mar 2011
Plus une demande d'avis qu'un avis...

Bonjour,

Je jette des bouteilles à la mer, en espérant qu'une me revienne avec un début de solution...

J'essaye de monter une boutique Prestashop avec Sivit comme hébergeur et orange comme FAI, mais problème il m'est impossible d'envoyer des mails (contact, commande), les tests mail ne marchent pas. Bref la mouise.
J'ai tout essayé, les fonctions mail Php, config en Smtp, différentes adresses rien. Et pourtant, en local, j'ai réussi à le faire marcher.
Si vous avez une idée...

En tout cas merci

Envie de donner votre avis ?

Votre Nom*

Adresse Mail (ne sera pas publiée)*

Site web

Votre commentaire*


Cochez cette case si vous n'êtes pas un robot spammeur