Technics Posté 8 Octobre 2007 Posté 8 Octobre 2007 Bonjour, J'ai fais un copier coller du script trouver sur le site. J'ai mis mon adresse mail comme destinataire. Mais je ne reçois rien. Ca fait déjà 24 heures. J'ai une adresse gmail. Il dit que le mail est bien envoyé. Quelqu'un a eu le même soucis? ou sais d'ou cela pourrai venir? Merci d'avance
kenzo49 Posté 8 Octobre 2007 Posté 8 Octobre 2007 Colle le script ici, certain hebergeur ne propose pas la fonction ()Mail' Mais colle quand même le script que les pro puissent te dire ça.
Technics Posté 8 Octobre 2007 Auteur Posté 8 Octobre 2007 Voici le code : $email_webmaster = "webmaster_AT_domaine.tld"; --> dans cette ligne j'ai bien modifié l'adresse mail <?php// Dans la ligne qui suit, remplacer webmaster_AT_domaine.tld par l'adresse email du webmaster, à laquelle les messages devront être envoyés$email_webmaster = "webmaster_AT_domaine.tld";// === traitement des données du formulaire ============================================================if (isset($_POST["envoyer"])){ // le formulaire a été soumis $etat = "erreur"; // Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur// --- mise en forme des champs saisis dans le formulaire lors de sa soumission --- if (isset($_POST["email_expediteur"])) { $_POST["email_expediteur"]=trim(stripslashes($_POST["email_expediteur"])); } if (isset($_POST["titre"])) { $_POST["titre"]=trim(stripslashes($_POST["titre"])); } if (isset($_POST["message"])) { $_POST["message"]=trim(stripslashes($_POST["message"])); } // --- test de la validité des champs saisis --- if (empty($_POST["email_expediteur"])) { // il manque l'email de l'expéditeur $erreur="Saisissez votre adresse email..."; } elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email_expediteur"])){ // l'adresse e-mail n'est pas valide $erreur="Votre adresse e-mail n'est pas valide..."; } elseif (empty($_POST["message"])) { // le message est vide $erreur="Saisissez un message..."; } else { // --- tous les champs sont correctement remplis: on pourra envoyer le mail --- $etat="ok"; }}else { // --- le formulaire n'a pas été soumis --- $etat="attente";}// === fin de traitement des données du formulaire =======================================================?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xml:lang="fr" lang="fr" xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Formulaire de contact</title></head><body><h1>Contacter le webmaster</h1><?phpif ($etat!="ok"){// le formulaire n'a pas été soumis, ou soumis avec une erreur if ($etat=="erreur"){//le formulaire a été soumis avec une erreur echo "<p><strong>".$erreur."</strong></p>\n"; // afficher le message d'erreur }?> <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> <p><label for="email_expediteur">Votre adresse e-mail (obligatoire):</label><br /> <input type="text" size="40" name="email_expediteur" id="email_expediteur" value="<?php if (!empty($_POST["email_expediteur"])) { // l'adresse email de l'expéditeur a été saisie: la réafficher echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES); } ?>" /> </p> <p><label for="titre">Titre de message (facultatif):</label><br /> <input type="text" size="40" name="titre" id="titre" value="<?php if (!empty($_POST["titre"])) { // le titre du message a été saisi: le réafficher echo htmlspecialchars($_POST["titre"],ENT_QUOTES); } ?>" /> </p> <p><label for="message">Message (obligatoire):</label><br /> <textarea name="message" id="message" cols="40" rows="5"><?php if (isset($_POST["message"])) { // le message a été saisi: le réafficher echo htmlspecialchars($_POST["message"],ENT_QUOTES); } ?></textarea> </p> <p><input type="submit" name="envoyer" value="Envoyer" /> </p> </form><?php}else {// le formulaire a été soumis sans erreur, on envoie le mail $entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n"; $entete .= "MIME-Version: 1.0"; if (@mail($email_webmaster,$_POST["titre"],$_POST["message"],$entete)){ // mail envoyé echo "Votre message a été envoyé.<br />\n"; echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Envoyer un autre message...</a>\n"; } else { // erreur lors de l'envoi du mail echo "Un problème s'est produit lors de l'envoi du message.\n"; echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n"; }}?></body></html>
captain_torche Posté 8 Octobre 2007 Posté 8 Octobre 2007 Tu testes le script en local, ou chez un hébergeur (et si oui, lequel ?)
kenzo49 Posté 8 Octobre 2007 Posté 8 Octobre 2007 Technics, comme je te l'ai dit si ce n'est pas ton script en l'occurence c'est ton hebergeur qui n'accepte pas cela. Tu as plein d'autres formulaire de contact dispo sur le net, parfois les hebergeurs propose même des scripts compatible. Steph.
Technics Posté 8 Octobre 2007 Auteur Posté 8 Octobre 2007 je le teste en direct Mon provider est http://www.need4hosting.info/ J'ai pas vu dans le forum et la faq que la fonction mail() n'était pas pris en charge en + j'avai un autre formulaire avant mais très basique et celui la passait
captain_torche Posté 8 Octobre 2007 Posté 8 Octobre 2007 Essaye de faire juste un envoi de mail tout simple, sans le formulaire : <?php mail('ton@email', 'test', 'message'); ?> Et dis-nous si ça fonctionne. Juste au cas où : tu as consulté ton dossier "spams" ?
Dadou Posté 8 Octobre 2007 Posté 8 Octobre 2007 Les messageries gratuites comme Gmail, hotmail, yahoo mail... ont tendance à envoyer les mails envoyés automatiquement dans le filtre antispam (surtout si les entêtes ne sont pas complets), certains comme Hotmail necessite de travailler sur le spf (enfin je crois que c'est ça)
Technics Posté 8 Octobre 2007 Auteur Posté 8 Octobre 2007 Le simple code php fonctionne, c'est celui que j'utilisait avant Les mails n'arrivent même pas comme spam
captain_torche Posté 8 Octobre 2007 Posté 8 Octobre 2007 Dans ce cas, il va falloir que tu identifies à quel moment de ton script ça coince. Pour ça, fais un echo (avec un texte différent, bien sûr) après chacune des conditions, tu pourras ainsi situer où le traitement bloque.
TrocWeb Posté 8 Octobre 2007 Posté 8 Octobre 2007 on peut voir si ca part du dédié dans les log mail du server je crois, mais je ne sais plus ou, si quelqu'un peut confirmer ou cela ce trouve
Technics Posté 14 Octobre 2007 Auteur Posté 14 Octobre 2007 Bonjour, Cela fonctionne maintenant. J'ai modifié ceci dans le code : <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> Dans le action j'ai mis le nom de ma page index_mail.php à la place du <?php etc Quelqu'un aurait une explication?quel est la difference? Merci
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant