Page 1 sur 1

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

Posté : 30 mars 2006, 18:50
par migliori
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;
?>


Posté : 30 mars 2006, 20:10
par Ripat
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.

Posté : 30 mars 2006, 20:30
par migliori
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.

Posté : 30 mars 2006, 20:51
par Truc
as tu ajouté des en-têtes adaptés ?

Posté : 30 mars 2006, 21:07
par migliori
[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.