8768 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai vu sur le Web que ce problème était assez récurrent lors de l'envoi de mails à l'aide d'un formulaire de contact :
la fonction
mail($cible, $objet, $message, $headers)

renvoie 'true' et j'affiche "votre message a bien été envoyé", mais le mail n'arrive jamais à destination.
En en-tête du fichier PHP, j'ai bien écrit :
ini_set('SMTP','smtp.sfr.fr');

pour indiquer le serveur de mail à utiliser.

Alors en local sur mon desktop Window ça marche très bien, les mails arrivent à destination, par contre chez mon hébergeur (Hostinger), ils n'arrivent pas. Comme je suis chez SFR, je me demande si peut être le serveur SMTP SFR n'accepte de messages qu'en provenance d'une box SFR, ce qui pourrait expliquer que ça ne marche pas depuis Hostinger ? Par contre au début (l'année dernière) le même script fonctionnait chez Hostinger, avec le même SMTP SFR Smiley ohwell .

voir les valeurs de phpinfo() de hostinger ci-dessous, mais je ne vois pas ce qui peut clocher (la valeur SMTP localhost est écrasée par mon ini_set('SMTP','smtp.sfr.fr'), et le port 25 par défaut fonctionne pour SFR :

sendmail_from no value
sendmail_path /usr/sbin/sendmail -t -i
serialize_precision 17
short_open_tag On
SMTP localhost
smtp_port 25
Modifié par Thomas237 (09 Mar 2016 - 12:10)
Administrateur
Bonjour,

un test possible pour le déterminer : est-ce qu'il est possible d'envoyer un mail SFR depuis un autre opérateur français comme Orange ou NC/Bouygues ou Free sans autre configuration ? (j'ai un vieux souvenir de problème avec Free/Proxad depuis une ligne Orange)
Salut Felipe,

oui J'avais pensé à ce test : puisque ça fonctionne en local, je me connecte sur un autre Wifi (non SFR) et j'essaye d'envoyer un mail avec mon formulaire de contact via la connexion locale du serveur EasyPHP.
A voir donc, mais dans l'immédiat je ne vais pas pouvoir le faire ...
Administrateur
Oui pour des raisons de protection anti spam la plupart des SMTP de fournisseurs d'accès limitent l'usage aux adresses IP de leurs abonnés.
ça pourrait être une explication, en effet.

du coup j'ai essayé l'envoi de mail en passant par leur serveur SMTP avec authentification, avec comme identifiants mon email sfr et mon mot de passe associé :

<? php
ini_set('SMTP','smtp-auth.sfr.fr'); 
ini_set("smtp_port", 587);
ini_set("auth_username", "mon_email@sfr.fr");
ini_set("auth_password", "mon_mot_de_passe_email");

Mais les mails n'arrivent pas non plus à destination.
Je ne sais pas trop quoi faire, essayer avec un autre serveurs smtp ? j'ai essayé orange et free sans plus de succès.
J'ai résolu le problème en utilisant PHPMailer plutôt que la fonction sendmail de PHP, sans parvenir à trouver pourquoi ça ne marchait pas.
En tous cas, ça ne venait pas d'un rejet du serveur SMTP.
Attention, cependant avec la librairie PHPMailer, selon la version que l'on télécharge ça marche ou on se retrouve avec des erreurs ...