J'ai récemment eu ce problème avec un client. Le code lit:Comportement étrange dans la fonction de messagerie PHP, l'adresse n'existe pas
ini_set("sendmail_from", "[email protected]<current-domain>.com");
// $target_email has been validated as a value username.
// $subject is a simple String.
// $message is an HTML message.
mail($target_email, $subject, $message);
Lorsque j'ai testé cela sur ma machine, cela a fonctionné correctement. Quand je l'ai testé à la maison, au travail, sur Windows 2000 (IE6), XP (quatre machines différentes, et une instance VirtualBox) (IE6 & 7, Opera 9, Firefox 3), et Vista (IE 7), ainsi que à travers Konquerer et Firefox sur Ubuntu (sur deux machines différentes), ça a bien fonctionné (je n'ai pas de Mac). J'avais essayé le site Web sur quatre réseaux différents et dans trois comtés différents. J'ai fait tout ce que je pouvais pour casser ce site, et je n'ai reçu aucune erreur, et l'email est venu de noreply @ domaine actuel > .com à l'adresse attendue rapidement. Quand mon client l'a testé à son bureau il a eu une erreur SMTP, disant que le nom noreply @ < domaine actuel > .com n'existe pas et il n'a pas reçu l'email. Mais les mêmes lignes fonctionnent bien sur mon serveur (LAMP de base mis en place sous PHP 5.3, ils ont Windows 5.2.6).
Qu'est-ce qui s'est passé exactement? Ma meilleure supposition était que c'est un problème bizarre de serveur de Windows, je n'ai pas le plus foggiest quoi d'autre il pourrait être. Malheureusement, je n'ai pas pu voir comment ils ont configuré leurs machines locales pour tester cette théorie.
Est-ce que cela provoquerait l'affichage du site Web, «L'utilisateur n'existe pas» lorsqu'il consulte le site Web? Le PHP ne devrait-il pas se comporter de la même façon, même si son système de messagerie refuse tout ce qui est envoyé par le serveur? – cwallenpoole