Page 1 sur 1

Mail() qui n'envoie rien...

Posté : 29 oct. 2006, 15:58
par Miam
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

Posté : 29 oct. 2006, 16:11
par 2501gigi
On peut voir le code du formulaire STP.

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

Posté : 29 oct. 2006, 16:16
par 2501gigi
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.

Posté : 29 oct. 2006, 16:18
par Cyrano
si si, ça l'envoie et selon le résultat, mail() retourne true ou false.

Posté : 29 oct. 2006, 16:28
par albat
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) { //... 

Posté : 29 oct. 2006, 16:55
par 2501gigi
Ok autant pour moi. mais j'ai dis que j'en etait pas sur.
Personne n'est parfait

Posté : 29 oct. 2006, 16:58
par albat
Nobody's perfect, indeed !
Mais ce forum aide à le devenir... ;)

Posté : 29 oct. 2006, 17:03
par @rthur
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)

Posté : 29 oct. 2006, 19:22
par Miam
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.

Posté : 29 oct. 2006, 21:13
par @rthur
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...

Posté : 29 oct. 2006, 21:58
par Miam
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

Posté : 29 oct. 2006, 22:05
par albat
Un p'tit Résolu ?... ;)

Posté : 29 oct. 2006, 22:51
par Miam
Un p'tit Résolu ?... ;)
Désolé, c'est l'euphorie du moment! :wink: :boire4: