envoyer mail de PHP avec Content-Type: multipart/alternative

J'essaie d'envoyer un multipart mail qui contient à la fois html et texte brut. C'est également l'un des moyens de passer à travers les filtres anti-spam et permettre à plus de gens à lire le mail en cas de ne pas supporter l'HTML. Après avoir passé de longues heures de recherche sur google, j'ai trouvé quelques exemples. J'ai fait mon code, qui envoie le mail, mais il affiche le texte avec les balises html, code, string etc.

<?php
$boundary=md5(uniqid(rand()));
$header .= "From:My Name<[email protected]>\n";
$header .= "Reply-To: [email protected] \n";
$header .= 'MIME-Version: 1.0'."\r\n";
$header .= 'Content-type: multipart/alternative;boundary=$boundary '."\n";

$adres = "[email protected]";

$subject = "subject";

$message = "This is multipart message using MIME\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-type: text/plain;charset=iso-8859-1\n";
$message .= "Content-Transfer-Encoding: 7bit". "\n\n";
$message .= "Plain text version\n\n";
$message .="--" . $boundary . "\n";
$message .="Content-type: text/html;charset=iso-8859-1\n";
$message .= "Content-Transfer-Encoding: 7bit". "\n\n";
$message .="<html>
<body>
<center>
<b>HTML text version</b>
</center>
</body>
</html>\n\n";
$message .= "--" . $boundary . "--";

if(mail($adres, $subject, $message, $header))
{
print'message sent';
}
else
{
print'message was not sent';
}
?>

C'est le résultat:

    This is multipart message using MIME
    --c071adfa945491cac7759a760ff8baeb
    Content-type: text/plain;charset=iso-8859-1
    Content-Transfer-Encoding: 7bit

    Plain text version

    --c071adfa945491cac7759a760ff8baeb
    Content-type: text/html;charset=iso-8859-1
    Content-Transfer-Encoding: 7bit

    <html>
    <body>
    <center>
    <b>HTML text version</b>
    </center>
    </body>
    </html>

    --c071adfa945491cac7759a760ff8baeb--

Comme vous pouvez le voir, il affiche le codage à la place du message seul. J'ai essayé beaucoup de solutions affiché comme:

  • ajout/suppression de \r\n;
  • changer \r\n \n;
  • changement de type de contenu alternatif mixte;

Je suis en train d'apprendre le PHP et tout ce que je sais est tout ce que j'ai lu et fait jusqu'à présent. J'ai encore beaucoup à apprendre, alors s'il vous plaît si vous pouviez me dire où est le problème. Je serais très reconnaissante.En ce qui concerne meilleur.

1. Vous êtes de mélange \n et \r\n. Outre les corps de message où vous pouvez utiliser le w/e vous voulez, vous devez TOUJOURS utiliser \r\n dans le message et le contenu de l'en-tête des sections. 2. Suffit d'utiliser PHPMailer.
3. Je pense que vous avez besoin d'un autre saut de ligne après: $message = "This is multipart message using MIME\n";

OriginalL'auteur Kamil Grzelak | 2013-08-29