Se connecter avec
S'enregistrer | Connectez-vous

Arrive pas a envoyé un mail php , heberge chez moi . FAI free

Dernière réponse : dans Programmation

Bonjour,

Voila sur mon site j'ai besoin d'envoyé des mails automatiquement (pour me contacter , pour renvoyé un mot de passe ou autre) . Mais ca ne marche pas , je ne reçois rien alors que je n'ai aucune erreur ! Voila le code

Php.ini

[mail function]
; For win32 only.
SMTP = smtp.free.fr
smtp_port = 25

; For win32 only
sendmail_from = Mon_adresse@free.fr




Httpd.conf

ServerAdmin Mon adresse@free.fr




Ensuite dans ma freebox , j'ai ouvert le port 25 et je les redirigé vers mon server port 25.

Et voila le code de la page

  1. <?php
  2. $headers ='From: "Moi"<Mon_adresse@free.fr>'."\n";
  3. $headers .='Reply-To: Mon_adresse@free.fr'."\n";
  4. $headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
  5. $headers .='Content-Transfer-Encoding: 8bit';
  6.  
  7. if(mail('Mon_adresse@free.fr', 'Sujet', 'Message de test', $headers))
  8. {
  9. echo 'Le message a bien été envoyé';
  10. }
  11. else
  12. {
  13. echo 'Le message n\'a pu être envoyé';
  14. }
  15. ?>





Merci de m'aider j'ai vraiment besoin d'aide
Lassé par la pub ? Créez un compte
Expert Programmation

Bien sur !

  1. 1. <?php
  2. 6.
  3. 7. if(mail('Mon_adresse@free.fr', 'Sujet', 'Message de test'))
  4. 8. {
  5. 9. echo 'Le message a bien été envoyé';
  6. 10. }
  7. 11. else
  8. 12. {
  9. 13. echo 'Le message n\'a pu être envoyé';
  10. 14. }
  11. 15. ?>

Alors j'ai bien le message : "Le message a bien été envoyé"

Mais rien dans ma boite mail....Sinon c'est pas a cause de free qui bloque les courriels spam et les courriels de site son considéré comme spam ? Ou sinon une mauvaise configuration ?
Expert Programmation

essaie sur une autre adresse, mais généralement, oui, quand on ne connait pas l'expéditeur et qu'un mail est suspet, il part au SPAM...

Mais bon, on sait que ça vient des headers !

J'y regarde après manger ;) 
Expert Programmation

Aucune idée, Free, j'ai rien compris :p 
  1. $expediteur = 'Adresse_de_lexpediteur@fai.fr';
  2.  
  3. $entete = "MIME-Version: 1.0\r\n";
  4. $entete .= "Content-type: text/html; charset=\"UTF-8\"\r\n";
  5. $entete .= "From: <$expediteur>\r\n";
  6. $entete .= "Reply-To: $expediteur\r\n";
  7. if(mail('Mon_adresse@free.fr', 'Sujet', 'Message de test', $entete))
  8. {
  9. echo 'Le message a bien été envoyé';
  10. }
  11. else
  12. {
  13. echo 'Le message n\'a pu être envoyé';
  14. }


un exemple de header.
Expert Programmation

Bonjour,

Tien voilà un exemple de code PHP pour la fonction mail. Tu peux la modifier.

Sur la page "formulaire.php"
  1. <form id="contact" method="post" action="traitement_formulaire.php">
  2. <?php
  3. mail("$email", "$objet", "$message" );
  4. ?>
  5. <fieldset><legend>Vos coordonnées</legend>
  6. <p><label for="nom">Prénom NOM:</label><input type="text" id="nom" name="nom" tabindex="1" /></p>
  7. <p><label for="email">Email :</label><input type="text" id="email" name="email" tabindex="2" /></p>
  8. </fieldset>
  9.  
  10. <fieldset><legend>Votre message :</legend>
  11.  
  12. <p><label for="objet">Objet :</label><input type="text" id="objet" name="objet" tabindex="3" /></p>
  13. <p><label for="message">Message :</label><textarea id="message" name="message" tabindex="4" cols="30" rows="8"></textarea></p>
  14. </fieldset>
  15.  
  16.  
  17. <div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer" /><input type="reset" name="effacer" value="Effacer tout"/>


Et dans la page "traitement_formulaire.php"

  1. <?php
  2. /*
  3. ********************************************************************************************
  4. CONFIGURATION
  5. ********************************************************************************************
  6. */
  7. // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
  8. $destinataire = 'MONMAIL@DOMAINE.fr';
  9.  
  10. // copie ? (envoie une copie au visiteur)
  11. $copie = 'non'; // 'oui' ou 'non'
  12.  
  13. // Messages de confirmation du mail
  14. $message_envoye = "Votre mail a bien été envoyé à ADIE.fr, à bientôt <b>$nom</b> !";
  15. $message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";
  16.  
  17. // Messages d'erreur du formulaire
  18. $message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.php\">envoyer le formulaire</a>.";
  19. $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
  20.  
  21.  
  22. // on teste si le formulaire a été soumis
  23. if (!isset($_POST['envoi']))
  24. {
  25. // formulaire non envoyé
  26. echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
  27. }
  28. else
  29. {
  30. /*
  31. * cette fonction sert à nettoyer et enregistrer un texte
  32. */
  33. function Rec($text)
  34. {
  35. $text = trim($text); // delete white spaces after & before text
  36. if (1 === get_magic_quotes_gpc())
  37. {
  38. $stripslashes = create_function('$txt', 'return stripslashes($txt);');
  39. }
  40. else
  41. {
  42. $stripslashes = create_function('$txt', 'return $txt;');
  43. }
  44.  
  45. // magic quotes ?
  46. $text = $stripslashes($text);
  47. $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
  48. $text = nl2br($text);
  49. return $text;
  50. };
  51.  
  52. /*
  53. * Cette fonction sert à vérifier la syntaxe d'un email
  54. */
  55. function IsEmail($email)
  56. {
  57. $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
  58. return (eregi($pattern,$email)) ? true : false;
  59. };
  60.  
  61. // formulaire envoyé, on récupère tous les champs.
  62. $nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
  63. $email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
  64. $objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
  65. $message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
  66.  
  67. // On va vérifier les variables et l'email ...
  68. $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
  69.  
  70. if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
  71. {
  72. // les 4 variables sont remplies, on génère puis envoie le mail
  73. $headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";
  74.  
  75. // envoyer une copie au visiteur ?
  76. if ($copie == 'oui')
  77. {
  78. $cible = $destinataire.','.$email;
  79. }
  80. else
  81. {
  82. $cible = $destinataire;
  83. };
  84.  
  85. // Remplacement de certains caractères spéciaux
  86. $message = str_replace("'","'",$message);
  87. $message = str_replace("’","'",$message);
  88. $message = str_replace(""",'"',$message);
  89. $message = str_replace('<br>','',$message);
  90. $message = str_replace('<br />','',$message);
  91. $message = str_replace("<","<",$message);
  92. $message = str_replace(">",">",$message);
  93. $message = str_replace("&","&",$message);
  94.  
  95. // Envoi du mail
  96. if (mail($cible, $objet, $message, $headers))
  97. {
  98. echo '<p>'.$message_envoye.'</p>'."\n";
  99. }
  100. else
  101. {
  102. echo '<p>'.$message_non_envoye.'</p>'."\n";
  103. };
  104. }
  105. else
  106. {
  107. // une des 3 variables (ou plus) est vide ...
  108. echo '<p>'.$message_formulaire_invalide.' <a href="contact.php">Retour au formulaire</a></p>'."\n";
  109. };
  110. }; // fin du if (!isset($_POST['envoi']))
  111. ?>


Essai ça en modifiant certaines choses au passage si sa colle pas.

Cordialement :hello:  ;) 
Lassé par la pub ? Créez un compte
Tom's guide dans le monde