Salut,
Je bosse sur un petit bout de code pour envoyer un mail avec pièce jointe.
L'envoi du mail, ça va. Le formatage du texte, ça va. L'envoi d'une
pièce jointe, ça va.(Enfin, j'ai pas encore tester avec outlook!) L'envoi de plusieurs pièce jointe, ca déraille sérieusement.
Je m'explique, autant sur un client mail du style thunderbird, j'ai pas
de soucis à me faire, autant avec d'autre client de yahoo.fr la j'ai
des problèmes (testé que sur thunderbird et Yahoo.fr pour l'instant).
C'est à dire que sur Yahoo, je n'ai que la première pièce jointe qui
s'affiche, mais pas les autre. Au contraire, sur thunderbird, j'ai bien
toute mes pièces jointes et ne sont pas corrompus.
Voili voilou, j'ai beau comparer mes code sources des mails avec
d'autre qui marche, mais je ne trouve pas point qui pourrai faire planter tel ou
tel pièce jointe.
Ci joint, le code (simplifié hein, pas les 300 lignes)
$boundary = "/-------".md5(uniqid(rand()))."-------/"; // séparateur
$headers .= "MIME-Version: 1.0\nContent-Type: multipart/mixed; boundary=\"$boundary\"\n";
$msg = "This is a multi-part message in MIME format.\n--$boundary\n".
"Content-Type: text/plain; charset=ISO-8859-1; format=flowed".
"Content-Transfer-Encoding: quoted-printable\n\n".
"$message_final\n\n";
for ($i=0; $i <= $_POST['nbpji']; $i++
){
$var = $i+1;
$fichier = $_FILES['Fichier'.$var];
$temp = $fichier['tmp_name'];
$name = $fichier['name'];
$mimetype = mime_content_type($destination);
$openf =
fopen($destination,
"rb");
$message_final .= "--$boundary\n".
"Content-Type: $mimetype; name=\"$name\"\n".
"Content-Transfer-Encoding: base64\n".
"Content-Disposition: inline; filename=\"$name\"\n\n".
"$piecejointe\n".
$boundary."--";
}