3 votes

Courriel multipartite vierge

J'utilise PHP pour envoyer un message multipart/mixte (texte brut, html et pièces jointes). Cependant, alors que cela fonctionne pour la plupart des comptes, Yahoo, GMail et Sky semblent afficher des emails vides. Alors que tous les autres semblent afficher l'email. TOUTE AIDE SERAIT GRANDEMENT APPRÉCIÉE !

Mes en-têtes sont

$headers .= "Content-Type: multipart/mixed; boundary=\"mixed-" . $random_hash . "-mixed\"\n";
$headers .= "MIME-Version: 1.0\n"; 

Et le contenu est ;

--mixed-7df05b31-mixed  

Content-Type: multipart/alternative; boundary="alt-7df05b31-alt"  

--alt-7df05b31-alt 

Content-Type: text/plain; charset=utf-8 

            Hello how are you? I am just checking the mailing function.

            Hopefully this will work!

            Cheers.

--alt-7df05b31-alt 

Content-Type: text/html; charset=utf-8 

<div style="font-family:Arial, Helvetica, sans-serif; font-size: 10pt;">

<div> 

            Hello how are you? I am just <b>checking</b> the mailing function.<br><br>

            Hopefully this will work!<br><br>

            Cheers.</div></div>

--alt-7df05b31-alt--

--mixed-7df05b31-mixed 

Content-Type: text/plain; name="abc.txt"  
Content-Disposition: attachment; filename="abc.txt"   
Content-Transfer-Encoding: base64

SEVMTE8gSlVTVCBURVNUSU5HIC4uLiA=

--mixed-7df05b31-mixed--

2voto

horatio Points 1406

C'est peut-être un artefact dû au collage, mais essayez de supprimer l'espace vide à la fin de chaque frontière. (Mettez le texte en surbrillance et vous remarquerez que les limites ont un espace supplémentaire, mais pas les limites de fermeture).

2voto

Sathish Kumar Points 369

Veuillez vérifier si votre code ressemble à ce qui suit car le code suivant fonctionne bien pour moi.

$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
$headers .= "This is a multi-part message in MIME format.\r\n";
$headers .= "--".$uid."\r\n";
$headers .= "Content-type:text/html; charset=iso-8859-1\r\n";
$headers .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$headers .= $msg."\r\n\r\n";    
$headers .= "--".$uid."\r\n";
$headers .= "Content-Type:application/html; name=\"".$filename."\" \r\n"; // use different content types here
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
$headers .= $content."\r\n\r\n";
$headers .= "--".$uid."--";

0voto

Marc B Points 195501

Ne construisez pas vos propres messages MIME. utilisez Swiftmailer ou PHPMailer pour le faire à votre place.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X