[RESOLU] E-mails arrivant vides pour certains fournisseurs

Petit nouveau ! | 3 Messages

03 févr. 2021, 11:36

Bonjour à tous.

Je suis confronté à un problème auquel je ne trouve pas de solution par moi-même, donc j'en appelle à vos bons soins !

J'envoie des e-mails depuis mon site, hébergé sur OVH, comme ceci (j'ai remplacé le nom de domaine.....) :
$boundary = "-----=" . md5( uniqid ( rand() ) );
$headers  = "From: \"Mon Site\"<[email protected]>\n";
$headers .= "Reply-To: [email protected]\n";
$headers .="MIME-Version: 1.0\n"; 
$headers .="Content-Type: multipart/alternative;boundary=$boundary\n";
$headers .="Content-Transfer-Encoding: 8bit\n";
$headers .="Content-Disposition: inline\n";
  
$message_txt= "blablabla \n";

 $message_html = "<html><body style=\"background-color:#dfdfdf;\">
<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"800\">
  blablabla...
";

  $message  = "This is a multi-part message in MIME format.\n\n";
  $message .= "--" . $boundary . "\n";
  $message .= "Content-Type: text/plain; charset=\"UTF-8\"\n";
  $message .= "Content-Transfer-Encoding: 8bit\n";
  $message .= "Content-Disposition: inline\n";
  $message .= $message_txt;
  $message .= "\n\n";
  $message .= "--" . $boundary . "\n";
  $message .= "Content-Type: text/html; charset=\"UTF-8\"\n";
  $message .= "Content-Transfer-Encoding: 8bit\n";
  $message .= "Content-Disposition: inline\n";
  $message .= $message_html;
  $message .= "\n\n";
  $message .="\n--$boundary--\n"; 
  mail($email, 'mot de passe perdu', $message, $headers);
et sur certains webmails, neuf.fr, laposte.net, par exemple, le mail arrive vide, mais en téléchargeant l'originale du message, on voit qu'il est bien présent.

J'ai passé les mails au testeur de score de Spam, c'est correct. J'ai tenter de remplacer certaines balises, en envoyant du multipart/mixed, plutôt qu'alternative.... sans succès
Je ne sais plus vraiment quoi faire pour résoudre le problème.. J'ai même été jusqu'à créer une BàL sur laposte.net, voyez mon désarroi !

Est-ce qu'un de vous à une solution, ou même une petite piste ?
Je peux poster l'entête telle que reçue sur mon mail laposte.net si ça peut aider...

Merci infiniment par avance !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

03 févr. 2021, 13:28

Pour les mails en HTML mon principal conseil est d'utiliser la librairie PHPmailer car elle est très robuste et permet un envoi des mails avec le moins de risques possibles d'incompatibilité en fonction des fournisseurs de mail :
https://github.com/PHPMailer/PHPMailer
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 3 Messages

03 févr. 2021, 15:34

Merci @rthur !

J'ai migré quelques e-mails, et ça fonctionne impecc' sur mon adresse laposte.net... J'espere qu'il en sera de même sur les autres webmails qui déconnaient...

En tout cas, a priori, ça règle le problème, à défaut de l'identifier...

Merci encore !