8711 sujets

Développement web côté serveur, CMS

Bonjour,

Je viens de modifier le format de mes mails qui sont envoyés à des clients afin de leur faire parvenir des pièces jointes.

Remplacement de
Content-Type: multipart/alternative;
par
Content-Type: multipart/mixed;


Cela fonctionne correctement sur toutes les messageries sauf sur yahoo mail qui m'affiche une page blanche à la consultation lorsqu'il y a une pièce jointe.
Pourtant lorsque je vais sur la liste des emails il me met bien qu'il y a des pièces jointes mais ne les ouvre pas.

Avez vous déjà rencontré ce problème ??

Dois-je modifier le Content-Type ?? (je l'ai déjà fait sans résultat Smiley fache )

je met le corps de mon mail

<?php
$boundary = "-----=".md5(rand());
//==========

//=====Création du header de l'e-mail.
$header = 'From: Boutique en ligne Dermeo <'.$expediteur.'>'.$passage_ligne;
$header.= 'Reply-to: Boutique en ligne Dermeo <'.$reponsemail.'>'.$passage_ligne;
$header.= 'Mime-Version: 1.0'.$passage_ligne;
$header.= 'Content-Type: multipart/mixed;boundary='.$boundary.$passage_ligne.$passage_ligne;
//=====Création du message.
$message = '';
//=====Ajout du message au format texte.
$message.= 'Content-type: text/html; charset=utf-8'.$passage_ligne;
$message.= 'Content-Transfer-Encoding: 8bit'.$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary.$passage_ligne;
//=====Ajout du message au format HTML
$message.= 'Content-type: text/html; charset=utf-8'.$passage_ligne;
$message.= 'Content-Transfer-Encoding: 8bit'.$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
include 'tcpdf/pdf2.php';
$nomFichier = $refFacture;
$file_name = 'factures/'.$nomFichier.'.pdf';
$file_type = filetype($file_name);
$file_size = filesize($file_name);

$handle = fopen($file_name, 'r') or die('File '.$file_name.'can t be open');
$content = fread($handle, $file_size);
$content = chunk_split(base64_encode($content));
$f = fclose($handle);

$message .= '--'.$boundary."\r\n";
$message .= 'Content-type:'.$file_type.';name='.$nomFichier.'.pdf'."\r\n";
$message .= 'Content-transfer-encoding:base64'."\r\n\r\n";
$message .= $content."\r\n";
$message.= "--".$boundary.$passage_ligne;

//=====Envoi de l'e-mail.
mail($mail,$sujet,$message,$header);
?>