[RESOLU] mail ne passe pas vers hotmail, outlook, msn

Eléphant du PHP | 257 Messages

26 janv. 2016, 23:19

Bonjour j'envois un mail avec le password avec yahoo, gmail aucun soucis avec live,outlok, hotmail l'envois du message ne passe pas une petite idée svp?
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn|outlook).[a-z]{2,4}$#", $mail)){
	$passage_ligne = "\r\n";
}else{
	$passage_ligne = "\n";
}



	                             $boundary = md5(uniqid(rand()));
                                          
										 $to = $email;
										 $reply = 'NO REPLY';
                                         $subject = 'Votre password Beltrans';
										 $sujet = 'Votre password site';
										 $logo_mail = 'http://www.site.be/images/BBB.png';
										  
										 $headers = "From: [email protected] <".$to.">".$passage_ligne."";
										 $headers .= "X-Sender: [email protected]".$passage_ligne."";
                                         $headers .= "Reply-To: ".$reply."".$passage_ligne."";
                                         $headers .= "Return-Path: ".$email."".$passage_ligne."";
                                         $headers .= "MIME-Version: 1.0".$passage_ligne."";
                                         $headers .= "Content-Type: text/html; charset=ISO-8859-1".$passage_ligne."";

                                         @$messages .= "--".$boundary."--";
                                         $messages  = "<html><body>";
                                         $messages .= "<img src=".$logo_mail." width='250' height='90' border='0'><br /><br />";
                                         $messages .= "<b>Sujet</b> :".$sujet."<br />";
                                         $messages .= "<b>Nom</b> :".$nom."<br />";
                                         $messages .= "<b>Email</b> :".$email."<br />";
                                         $messages .= "<b>Password</b> :".$pass2."<br />";
                                         $messages .= "<a href='http://www.site.be'>Connexion</a>";
                                         $messages .= "</body></html>";
                                         $messages .= "--".$boundary."".$passage_ligne."";

                                         (@mail($to,$subject,$messages,$headers));

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

26 janv. 2016, 23:36

Bonjour,

Vérifie que tu as bien mis en place SPF sur ton domaine.
Vérifie également que l'IP de ton serveur d'envoi de mail ainsi que ton nom de domaine ne sont pas blacklistés dans les blacklists les + courantes : http://mxtoolbox.com/blacklists.aspx


A noter aussi que tes 5 premières lignes sont une aberration, je ne sais pas d'où tu sors ça mais c'est n'importe quoi de changer le retour à la ligne suivant l'e-mail...
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 257 Messages

15 avr. 2016, 18:34

Bonjour voici la solution :D
$mail = $email;
         $to_address='NO REPLY';
         $from_address='NO REPLY';
         $logo_mail = 'http://www.monsite.be/images/BBB.png';
         //----------------------------------------------
         if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn|outlook).[a-z]{2,4}$#", $mail)) // On filtre les serveurs
         {$passage_ligne = "\r\n";
         }else{
         $passage_ligne = "\n";
         }
         $subject = 'Votre password monsite';
         //=====Création du header de l'e-mail.
         $header = 'From: "Beltrans" <[email protected]>'.$passage_ligne;
         $header.= "To : $mail".$passage_ligne;
         $header.= "Reply-to: <$from_address>".$passage_ligne;
         $header.= "Sender: <$from_address>".$passage_ligne;
         $header.= "MIME-Version: 1.0".$passage_ligne;
         $header.= 'Date: ' . date('r', time());
         $header.= "X-Mailer: PHP".phpversion().$passage_ligne;
         $header.= "X-MimeOLE: PHP".phpversion().$passage_ligne;
         $header .= "X-Sender: <http://www.Beltrans.be>".$passage_ligne;
         $header .= "X-auth-smtp-user: http://www.Beltrans.be".$passage_ligne;
         $header .= "X-abuse-contact: http://www.Beltrans.be".$passage_ligne; 
         $header .= 'Content-type: text/html; charset=ISO-8859-1'.$passage_ligne;
         //------------------------------------------------------------------

         //------------------------------------------------------------------
          $message = '
		  <html>
          <body>
          <img src='.$logo_mail.' width="250" height="90" border="0"><br /><br />
          <p>Bonjour,<br /><br />
          Merci de votre confiance et bonne amusement dans le respect.<br />
          Voici vos identifiants, merci de les garder et de ne les transmettres &agrave; <strong>personne</strong> :
          <ul>
          <li>Pseudo : '.$pseudo.'</li>
          <li>Mot de passe : '.$pass2.'</li>
          </ul>
          Merci de vous &ecirc;tre inscrit.<br /><br />
          Le Webmaster: http://www.monsite.be<br />
          <em>PS : Ne pas essayer de r&eacute;pondre &agrave; ce message, il est envoy&eacute; automatiquement.</em>
          </p>
          </body>
		  </html>';
          $mail = mail($mail, $subject, $message, $header);	  
          exit();}