Bonjour,
J'ai créé un formulaire d'envoi de mail au format texte avec pièce jointe.
Il est correctement réceptionné dans Mail (Mac), Outlook Express 6 (XP SP2).
Par contre, en effectuant un autre test sur Outlook Express 6 (XP SP3) et sur Hotmail, c'est la cata.
Le contenu du mail est vide ou il apparaît en contenu brut...
Voici un extrait de mon code :
J'ai créé un formulaire d'envoi de mail au format texte avec pièce jointe.
Il est correctement réceptionné dans Mail (Mac), Outlook Express 6 (XP SP2).
Par contre, en effectuant un autre test sur Outlook Express 6 (XP SP3) et sur Hotmail, c'est la cata.
Le contenu du mail est vide ou il apparaît en contenu brut...
Voici un extrait de mon code :
#Ecriture du message
$boundary = '-----='.md5(uniqid(rand()));
/* En-têtes de l'e-mail */
$headers = 'From: '.$nom.' <'.$email.'>'."\r\n";
$headers .= 'MIME-Version: 1.0'."\r\n";
$headers .= 'Content-type: multipart/mixed; boundary='.$boundary."\r\n";
$headers .= "\r\n";
/* Construction du message */
$message = '--'.$boundary."\r\n";
$message .= 'Content-Type: text/plain; charset=utf-8'."\r\n";
$message .= 'Content-Transfer-Encoding:8bit'."\r\n";
$message .= "\r\n";
$message .= 'Bonjour,'."\r\n\r\n";
$message .= 'Ce mail a été envoyé depuis MonSite par '.$nom."\r\n";
$message .= 'Voici le message qui vous est adressé :'."\r\n\r\n";
$message .= '***************************'."\r\n";
$message .= $msg."\r\n";
$message .= '***************************'."\r\n";
$message .= "\r\n";
$message .= '--'.$boundary."\r\n";
$message .= 'Content-Type: application/octet-stream ; name='.$nomfichier."\r\n";
$message .= 'Content-Transfer-Encoding: base64'."\r\n";
$message .= 'Content-Disposition: attachment; filename='.$nomfichier."\r\n";
$message .= "\r\n";
$message .= $piecejointe."\r\n";
$message .= "\r\n\r\n";
$message .= '--'.$boundary.'--'."\r\n";
/* Envoi de l'e-mail */
if (mail($to, $subject, $message, $headers))
{
$nom=$email=$sujet=$msg=$fichier='';
echo '<p class="texte1">Votre email a été envoyé avec succès. Merci.</p>';
unlink($destination); // suppression de la pièce jointe
}
else
{
$echo = '<p class="texte1">Erreur d\'envoi de l\'email.</p>';
}