[RESOLU] E-mails arrivant vides pour certains fournisseurs

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] E-mails arrivant vides pour certains fournisseurs

Re: E-mails arrivant vides pour certains fournisseurs

par pierre_harpic » 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 !

Re: E-mails arrivant vides pour certains fournisseurs

par @rthur » 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

E-mails arrivant vides pour certains fournisseurs

par pierre_harpic » 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 !