Mail() qui n'envoie rien...

Eléphanteau du PHP | 13 Messages

29 oct. 2006, 15:58

Bonjour,
j'ai créé un bout de code pour une page internet qui m'envoie les données d'une inscription en ligne. Mais le problème c'est qu'elle ne m'envoie rien (test sur mon compte EMail) malgré que la fonction mail() me renvoie un true pour l'envoie.
Quelqu'un peut-il m'aider? Voici mon code de la page que va chercher le formulaire.

Code : Tout sélectionner

<?php // === traitement des données du formulaire ============================================================ $nom=$HTTP_POST_VARS['Nom']; $prenom=$HTTP_POST_VARS['Prenom']; $genre=$HTTP_POST_VARS['Bouton-Sexe']; $age=$HTTP_POST_VARS['Age']; $rue=$HTTP_POST_VARS['Rue']; $NPA=$HTTP_POST_VARS['NPA']; $ville=$HTTP_POST_VARS['Ville']; $mail=$HTTP_POST_VARS['Email']; $telprive=$HTTP_POST_VARS['TelPrive']; $telprof=$HTTP_POST_VARS['TelProf']; $natel=$HTTP_POST_VARS['Natel']; $cours=$HTTP_POST_VARS['Case-Cours']; $heure=$HTTP_POST_VARS['Heure-Cours']; $remarque=$HTTP_POST_VARS['Remarque']; $objet="Nouvelle inscription"; $message= $nom." ".$prenom."\r\n".$rue."\r\n".$NPA." ".$ville ; /////version Mime $headers = "MIME-Version: 1.0\r\n"; //////mail en format text $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n"; ////ici on détermine l'expediteur et l'adresse de réponse $headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP"; $subject=$objet; $destinataire="[email protected]"; $body=$message; if (mail($destinataire,$subject,$body,$headers)) { echo "<h1>Votre inscription a été envoyée</h1>"; } else { echo "<h1>Une erreur s'est produite</h1>"; } include "formulaire.htm";?>
Merci d'avance

Eléphant du PHP | 258 Messages

29 oct. 2006, 16:11

On peut voir le code du formulaire STP.

Ca m'aiderais a me faire une idée.

Eléphant du PHP | 258 Messages

29 oct. 2006, 16:16

Je dis peut etre une connerie mais la tu demande si ton mail a bien etait envoyer sans l'envoyer.

Car si je m'abuse

Code : Tout sélectionner

if (mail($destinataire,$subject,$body,$headers))
sa n'envoie pas le mail.

Mammouth du PHP | 19672 Messages

29 oct. 2006, 16:18

si si, ça l'envoie et selon le résultat, mail() retourne true ou false.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

29 oct. 2006, 16:28

if (mail($destinataire,$subject,$body,$headers)) { //...
Comme l'a indiqué Cyrano, ce code est parfaitement licite.
Il envoie l'e-mail et retourne un booléen indiquant si l'envoi a eu lieu.

Code équivalent :
$envoi = mail($destinataire,$subject,$body,$headers);
if ($envoi) { //... 

Eléphant du PHP | 258 Messages

29 oct. 2006, 16:55

Ok autant pour moi. mais j'ai dis que j'en etait pas sur.
Personne n'est parfait

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

29 oct. 2006, 16:58

Nobody's perfect, indeed !
Mais ce forum aide à le devenir... ;)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

29 oct. 2006, 17:03

Bonjour,

Es-tu hébergé chez un hébergeur pro ou es-ce toi qui gère le serveur?

Dans le cas n°1, essaye avec une page toute simple:
<?php
mail("[email protected]","test", "message de test");
?>
Si cette simple page ne donne rien, essaye vers une autre adresse e-mail.
Si ça ne marche toujours pas, contact le support technique de ton hébergeur.

Dans le cas n°2, vérifie ta config et vérifie la file d'attente de ton serveur mail
Nobody's perfect, indeed !
sauf les viPHP, bien sûr 8)
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 13 Messages

29 oct. 2006, 19:22

Rebonjour,
wahoo rapide ce forum, autant de réponse en si peu de temps... :o :merci:

Pour ce qui est de l'envoie, mon premier essai avec le même code mais beaucoup plus simplifié à fonctionné. J'ai donc accès à la méthode mail() sur le server (mon serveur est un serveur privé d'une personne m'hébergeant gratuitement car un site à but non-lucratif... et les fonctions php sont activées) mais dès que j'ai commencé à retoucher un peu le code de base pour le modifier à mes préférences, ça n'a plus marché.

Mais là je viens de réessayer comme on me l'a demandé avec un code simple:

Code : Tout sélectionner

<?php if (mail("[email protected]","test", "message de test")) { echo "<h1>Votre inscription a été envoyée</h1>"; } else { echo "<h1>Une erreur s'est produite</h1>"; }
et "Votre inscription a été envoyée" s'affiche mais je ne reçois pas de mail... :shock: :shock:

Est-il possible que sur le serveur il n'yait qu'un nombre limité de mail envoyé par jour, ce qui pourrait être la raison de mon problème...???


@2501gigi: Je ne pense pas que le code de mon formulaire t'aidera, car c'est du pur html qui envoie vers la page contenant le code que je vous ai montré ici... Et le liens fonctionne, car sinon le "Votre inscription a été envoyée" ne s'afficherai pas.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

29 oct. 2006, 21:13

Mais là je viens de réessayer comme on me l'a demandé avec un code simple:

Code : Tout sélectionner

<?php if (mail("[email protected]","test", "message de test")) { echo "<h1>Votre inscription a été envoyée</h1>"; } else { echo "<h1>Une erreur s'est produite</h1>"; }
et "Votre inscription a été envoyée" s'affiche mais je ne reçois pas de mail... :shock: :shock:

Est-il possible que sur le serveur il n'yait qu'un nombre limité de mail envoyé par jour, ce qui pourrait être la raison de mon problème...???
Donc à ce niveau, le problème ne vient pas du code PHP mais soit de l'envoi côté serveur, soit de la réception.

Tout d'abord teste sur différentes e-mails (avec des fournisseurs d'email différents) comme ça ça élkiminera la possibilité d'un problème ponctuel du côté d'hotmail/yahoo ou autre fournisseur d'email.
Si tu ne reçoit aucun message sur aucune des adresses alors le problème vient de l'envoi des messages du serveur de ton ami.
Demande lui de vérifier le bon fonctionnement de son serveur mail et notamment la liste d'envoi...
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 13 Messages

29 oct. 2006, 21:58

ben tu avais raison, j'ai changé l'adresse d'envoi et j'ai mis une autre de mes adresse n'étant pas un *****@hotmail.com. Résultat ça marche... :shock: :P

Je ne sais pas pourquoi avec Hotmail cela ne fonctionne plus (étant donné que mon premier essai à fonctionné...

En tout cas, merci à tous. Image

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

29 oct. 2006, 22:05

Un p'tit Résolu ?... ;)

Eléphanteau du PHP | 13 Messages

29 oct. 2006, 22:51

Un p'tit Résolu ?... ;)
Désolé, c'est l'euphorie du moment! :wink: :boire4: