mail() n'envoie pas de mail...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : mail() n'envoie pas de mail...

par migliori » 30 mars 2006, 21:07

[résolu]

Merci de ta réponse.

J'ai visité l'adresse et effectué une nouvelle tentative à partir du modèle de script qu'ils proposent...et ça fonctionne.

Je n'ai toujours pas compris pourquoi mon script ne marche pas, de plus il a été testé par quelqu'un sur un autre forum, et ça passe.

Je vais donc changer les headers.

Merci encore.

par Truc » 30 mars 2006, 20:51

as tu ajouté des en-têtes adaptés ?

par migliori » 30 mars 2006, 20:30

Désolé pour la mauvaise présentation, je ne connaissais pas.

Les variables sont bonnes, et j'utilise la fonction mail() sur le même serveur, où elle fonctionne.

par Ripat » 30 mars 2006, 20:10

J'imagine que tu as testé la fonction mail() avec un texte simple et que ça fonctionne. Que tu as également vérifié le contenu des variables passées en argument de cette fonction avant son appel.

En passant, édite ton post, mets-le entre les balises [P H P] et indente-le. Il sera plus lisible.

mail() n'envoie pas de mail...

par migliori » 30 mars 2006, 18:50

Bonjour à tous,

J'essaie d'envoyer simplement un mail à partir d'un formulaire, le message de confirmation apparait, mais je ne reçois rien dans ma boite aux lettres.

Voici mon code, si quelqu'un voit le bug... Merci à vous.

(le formulaire est posté par la page précedente, qui renvoie vers elle même, vérifie les champs et les variables sont envoyées par la session si les champs sont validés).

Je précise que j'ai déjà utilisé la fonction mail() sur le même hébergement, ça fonctionne, et j'ai vérifié les variables, elles sont correctes.

<?php session_start(); ?>

<?php


$message="";
$headers.=$_SESSION['nom'];

$address = "[email protected]" ;
$sujet = "demande de devis" ;
$message .= "Organisateur : {$_SESSION['organisateur']} \n" ;
$message .= "Type de spectacle :{$_SESSION['type']} \n" ;
$message .= "Nature de la prestation :{$_SESSION['prestation']} \n" ;
$message .= "Lieu du spectacle :{$_SESSION['lieu']} \n" ;
$message .= "Durée souhaitée :{$_SESSION['duree']} \n" ;
$message .= "Nbre de spectateurs :{$_SESSION['nombre']} \n" ;
$message .= "Budget :{$_SESSION['budget']} \n" ;
$message .= "Autres renseignements :{$_SESSION['renseignements']} \n" ;
$message .= "Nom :{$_SESSION['nom']} \n" ;
$message .= "E-Mail :{$_SESSION['email']} \n" ;
$message .= "Téléphone :{$_SESSION['tel']} \n" ;

if (preg_match ("/\Content-Type\b/i", $message)) {
$affichertexte= "<h3>Votre message contient du code html et ne sera pas envoyé.</h3>";
}

elseif (preg_match ("/\MIME-Version\b/i", $message)) {
$affichertexte= "<h3>Votre message contient du code html et ne sera pas envoyé.</h3>";
}

elseif (stristr($message, '<')) {
$affichertexte= "<h3>Votre message contient du code html et ne sera pas envoyé.</h3>";
}

else {

       if (mail($address,$sujet,$message,$headers)){
       // Si le mail a bien été envoyé, message de confirmation
       $affichertexte= "<h3><strong>Votre demande a bien été prise en       compte.</strong></h3>
       <h3><strong>Elle sera traitée dès réception et nous vous contacterons sous 48 h. </strong></h3>";
       }

       else{
       // sinon, message d'erreur.
       $affichertexte= "Votre mail n\'a pas pu être envoyé.Le serveur est en dérangement. Merci de réessayer un peu plus tard.<br>";
       }
}

?>



<?php
print $affichertexte;
?>