Envois mail

Résolu
David987 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   -  
David987 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je viens vers vous car, j'ai un souci, j'ai un page qui me permet d'envoyer un mail à tous les membres de mon site mais lorsque je valide mon formulaire ça ne me met aucune erreur mais le mail ne s'envois pas.

Il m'affiche le "else" soit : " $alert = 'Erreur d\'envoi de l\'e-mail';" et je ne vois pas ou se trouve l'erreur.

<?php
include("include/debut.php");

/* Si le formulaire est envoyé alors on fait les traitements */
if(!empty($ID))
{
if (!empty(stripslashes($_POST['envoye'])))
{
	

      $nom	     	= stripslashes($_POST['nom']);
      $expediteur	= stripslashes($_POST['email']);
      $sujet		= stripslashes($_POST['sujet']);
      $message		= stripslashes($_POST['message']);
 $select_all_membre = $bdd->query("SELECT email FROM membres");
	while($all_membre = $select_all_membre->fetch())
	{
    /* Expression régulière permettant de vérifier si le 
    * format d'une adresse e-mail est correct */
    $regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
 
    /* Expression régulière permettant de vérifier qu'aucun 
    * en-tête n'est inséré dans nos champs */
    $regex_head = '/[\n\r]/';
 
    /* Si le formulaire n'est pas posté de notre site on renvoie 
    * vers la page d'accueil */

    /* On vérifie que tous les champs sont remplis */
    if (empty($nom) 
           || empty($expediteur) 
           || empty($sujet) 
           || empty($message))
    {
      $alert = 'Tous les champs doivent être renseignés';
    }
    /* On vérifie que le format de l'e-mail est correct */
    elseif (!preg_match($regex_mail, $expediteur))
    {
      $alert = 'L\'adresse '.$expediteur.' n\'est pas valide';
    }
    /* On vérifie qu'il n'y a aucun header dans les champs */
    elseif (preg_match($regex_head, $expediteur) 
            || preg_match($regex_head, $nom) 
            || preg_match($regex_head, $sujet))
    {
        $alert = 'En-têtes interdites dans les champs du formulaire';
    }
    /* Si aucun problème et aucun cookie créé, on construit le message et on envoie l'e-mail */
    elseif (!!empty($_COOKIE['sent']))
    {
		$boundary = md5(uniqid(microtime(), TRUE));
	$headers = "From: $nom < $expediteur >\r\n"; // FROM ...
	$headers .= 'Mime-Version: 1.0'."\r\n";
	$headers .= 'Content-Type: multipart/mixed;boundary='.$boundary."\r\n";
	$headers .= "\r\n";
$to = $all_membre;
  // Creation du message a envoyer
  // -----------------------------
    $msg  =
  '--' . $boundary . "\r\n" .
  'Content-type: text/html; charset=utf-8' . "\r\n\r\n
  <html>
   <body>  
Bonjour, <br />
Ce mail à été envoyé depuis Pokemon-Sunshine.com par $nom .<br />
Voici le message qu'il vous envoie : <br />
******************************************************   <br /><br />
    $message <br /><br />
******************************************************
   </body>
  </html>\r\n";
 
	
	
        if (mail($to, utf8_decode($sujet), $msg, $headers))
        {
            $alert = 'E-mail envoyé avec succès';
?><META http-equiv="refresh" content="100000000; URL="><?php
           /* On détruit la variable $_POST */
            unset($_POST);
        }
        else
        {
            $alert = 'Erreur d\'envoi de l\'e-mail';
?><META http-equiv="refresh" content="100000000; URL="><?php
        }
	}
	}
}
    /* Cas où le cookie est créé et que la page est rafraichie, on détruit la variable $_POST */
    else
    {
        unset($_POST);
    }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="fr">
<head>
    <title>Contactez moi</title>
    <meta http-equiv="content-type" content="text/html;charset=utf-8(sans BOM)" />
</head>
<body>
 
<?php
if (!empty($alert))
{
    echo '<p style="color:red">'.$alert.'</p>';
}
?>
 
<form action="" method="post">
    <p>
        <label for="nom">Pseudo :</label>
        <input type="text" id="nom" name="nom" 
        	value="<?php echo $membre['pseudo'];?>" readonly="readonly"
        />
    </p>
    <p>
        <label for="email">E-mail :</label>
        <input type="text" id="email" name="email" 
        	value="moderation@pokemon-sunshine.com" readonly="readonly"/>
    </p>
    <p>
        <label for="sujet">Titre du message :</label>
        <input type="text" id="sujet" name="sujet" 
        	placeholder="Mettre le titre"
        />
    </p>
    <p>
        <label for="message">Message :</label>
        <textarea id="message" name="message" cols="100" rows="10"></textarea>
		<mark>Pour mettre une image merci de saisir ceci : <img src='lien de l'image'></mark>
    </p>
    <p>
        <input type="submit" name="envoye" value="Envoyer" />
    </p>
</form>
<?php
}
else
{
	echo' Vous devez être connectez pour accèder à cette page!!!.';
}
?>
</body>
</html>


Si vous pouvez m'aider, je suis preneur.

Merci par avance.

Lucryio.
A voir également:

1 réponse

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, as-tu déjà testé un appel simple à mail?
0
David987 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   1
 
L'envoie d'un mail simple fonctionne très bien
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > David987 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention  
 
alors je pense utile d'obtenir, en cas d'erreur, les valeurs de $to, utf8_decode($sujet), $msg, $headers.
0
David987 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   1
 
J'ai trouvé mon erreur, j'avais pas mis la bonne variable ^^

ça fonctionne nickel ;)
Merci pour ton aide.
0