Envoi de mail en PHP

Résolu
Bonjour,

Je suis actuellement sur un projet de site d'upload.

J'ai un soucis avec l'envoi de mail sur mes pages, voici le code :

//-------------------------------   Envoi de mail   ---------------------
// On règle le problème des serveurs de mail qui ne suivent pas la norme de passage à la ligne
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $email))
{
	$passage_ligne = "\r\n";
}
else
{
	$passage_ligne = "\n";
}

// Boundary (frontière entre les différentes parties du message)
	$boundary = '-----='.md5(rand());
					
// Sujet du mail
	$sujet='Vos informations de connexion';
					
// En-tête du mail
	$header = 'From: "Service telechargement <thibaut.gautheron@laposte.net>'.$passage_ligne;
	$header.= 'Reply-to: "Service telechargement" <thibaut.gautheron@laposte.net>'.$passage_ligne;
	$header.= 'MIME-Version: 1.0'.$passage_ligne;
	$header.= 'Content-Type: multipart/alternative;'.$passage_ligne.' boundary="'.$boundary.'"'.$passage_ligne;
					
// Message HTML
						
	$message_html='<html><head></head><body>
	<p>Bonjour,
	Voici les informations concernant votre compte, telles qu\'elles sont enregistrées :'.$passage_ligne.'
					
		Identifiant : ' .$username .'
		Mot de passe : ' .$mdp .'</p>
										
         <p>A bientôt sur "Service téléchargement" !</p></body></html>';

// Création du message
	$message = $passage_ligne.$boundary.$passage_ligne;
					
// Message au format HTML
	$message .= 'Content-Type: text/html; charset="ISO-8859-1"'.$passage_ligne;
	$message .= 'Content-Transfer-Encoding: 8bit'.$passage_ligne;
	$message.= $passage_ligne.$message_html.$passage_ligne;
	$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
					
// Envoi du mail
        if(mail($mail,$sujet,$message,$header))
	{
		// Message de confirmation
	}
	else
	{
		// Message d'erreur de l'envoi de mail
	}


Je ne reçois donc pas les mails ce qui n'est pas normal.

A l'aide svp, merci d'avance :)

5 réponses

  1. bonjour Plantakwatix,
    Pourrais tu vérifier
     <?php
      $to="ton email";
      if(mail($to,"test","test"))
        echo "ça marche";
      else
        echo " -;)";
      ?>
    


    si ça marche alors il faut encore vérfier ton code, sinon il faut vérifier la config SMTP (php.ini)
    1. Merci de ta réponse lilla85

      Ton code me dit que ça marche donc il doit y avoir une erreur dans mon code que j'ai contrôlé 10 fois =/
      1. pour détecter la source du problème on va procéder :
        essaye cela :

        <?php
        if(mail($mail,$sujet,$message))
        {
        echo "erreur dans".$header;
        }
        else
        {
        echo "erreur au moins dans".$message;
        }
        ?>
        1. Eh bien c'est une erreur au moins dans le $message.

          erreur au moins dans -----=7e39cee1d2eb257eddb5a4d386c4c35e Content-Type: text/html; charset="ISO-8859-1" Content-Transfer-Encoding: 8bit
          Bonjour, Voici les informations concernant votre compte, telles qu'elles sont enregistr?es : Identifiant : Mot de passe :
          A bient?t sur "Service t?l?chargement" !

          -------=7e39cee1d2eb257eddb5a4d386c4c35e--
          1. Problème réglé, le soucis venait de l'envoi de l'email, j'en ai bavé merci quand même ;)