Rechercher : dans
Par :

PB avec la fonction mail()

Dernière réponse le 9 avr 2009 à 13:43:37 zatox, le 9 avr 2009 à 01:11:49 
 Signaler ce message aux modérateurs

Bonjour, je monte un petit site sur l' espace perso de mon FAI en l'occurence neuf. L'envoi de mail par la fonction mail() ne fonctionne pas il y a une erreur du style :"Warning: mail() has been disabled for security reasons in etc..." d'après ce que j'ai pu comprendre sur internet, les fournisseurs d'accès gratuit n'activent pas cette fonction mail(). Soit, ma question est la suivante: je voudrais tester le code retour qui doit être renvoyé par cette fonction afin d'afficher un message compréhensible par un utilisateur lamda. je ne sais pas comment je dois faire ce test, quelqu'un pourrait-il m'indiquer comment tester le code retour renvoyé par la fonction mail() et si ce code peut contenir différentes valeurs, où peut-on trouver ses valeurs pour savoir quelle est la cause exacte de l'échec ?

Configuration: Windows XP
Firefox 3.0.8

Meilleures réponses pour « PB avec la fonction mail() » dans :
[PHP] Fonction mail() Voir La fonction mail() est bloquée chez certains des hébergeurs gratuits pour des raisons de sécurité (afin d'éviter le spam notamment), l'adresse ip de la machine qui a demandé le script sera alors indiquée dans le header 'X-MM-Mail-From-IP'. renseignez...
PHP - Mail et fonctions réseau VoirPHP étant un langage consacré au Web, il possède bien évidemment des fonctions lui permettant de communiquer avec le "monde extérieur" à l'aide de fonctions standards. Le service le plus utilisé sur Internet étant la messagerie électronique, il est...

1

gryzzly, le 9 avr 2009 à 01:27:50

La cause de l'échec est simple dans ton cas : désactivé. Y'a pas à chercher plus loin.

Pour vérifier que la fonction est (dés)activée:

// "" à compléter
$to = "";
$subject = ""; 
$content = ""; 
$headers = "";
if(@mail($to, $subject, $content, $headers)===FALSE){echo "echec d'envoi";}


mail renvoie TRUE/FALSE
tu ne pourras pas déterminer quelque est la cause de l'échec, a moins que tu ne saches que mail est desactivé (configuration php.ini).

Répondre à gryzzly

2

zatox, le 9 avr 2009 à 12:33:54

Bonjour, merci pour ta réponse, c'est exactement ce que je voulais faire, j'ai donc fait un test sur mon espace perso, quand j'envoie le mail, il m'affiche bien le message que j'ai positionné si @mail = false donc ça c'est bon mais le problème c'est que juste devant mon message il affiche quand même:
Warning: mail() has been disabled for security reasons in et ça j'aimerai qu'il ne l'affiche plus car pour un utilisateur lamda ce n'est pas très chouette. Est-ce que tu pourrais me dire s'il y a une solution pour ne pas afficher ce warning ? encore merci

Répondre à zatox

3

gryzzly, le 9 avr 2009 à 12:51:07

Normalement le @ devrait bloquer l'erreur. Ne pas utiliser la fonction mail ... ?

Répondre à gryzzly

4

 zatox, le 9 avr 2009 à 13:43:37

Excuses moi j'avais codé comme ça:
mail($to, $objet, $texte, $from);


if(@mail($to, $objet, $texte, $from)==false)
{
echo "Problème envoi mail: veuillez réessayer plus tard";
}
else
{
echo "Mail envoyé avec succès";
}

alors quil fallait coder:

@mail($to, $objet, $texte, $from);


if(@mail($to, $objet, $texte, $from)==false)
{
echo "Problème envoi mail: veuillez réessayer plus tard";
}
else
{
echo "Mail envoyé avec succès";
}

donc utiliser la fonction @mail() à la place de la fonction mail()

OK ça marche nickel chrome, je mets le problème résolu et je te remercie pour ton aide.

Répondre à zatox