J'envoie un email en utilisant PHP mail() et je peux recevoir et ouvrir la pièce jointe (dans ce cas un pdf) avec succès dans presque tous les programmes auxquels j'ai accès. Sauf dans mac mail où l'on me dit que le fichier est corrompu. Est-ce que quelqu'un d'autre a déjà rencontré ce problème? Voici le script que je me sers:PHP mail() pièce jointe ne s'ouvre pas dans Mac mail
//define the receiver of the email
$to = '[email protected]';
//define the subject of the email
$subject = 'Email with Attachment';
//create a boundary string. It must be unique
//so we use the MD5 algorithm to generate a random hash
$random_hash = md5(date('r', time()));
//define the headers we want passed. Note that they are separated with \n
$mime_boundary = "<<<--==+X[".md5(time())."]";
$path = $_SERVER['DOCUMENT_ROOT'].'/two/php/';
$fileContent = chunk_split(base64_encode(file_get_contents($path.'CTF_brochure.pdf')));
$headers .= "From: [email protected] <[email protected]>"."\n";
$headers .= "MIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
$message = "This is a multi-part message in MIME format.\n";
$message .= "\n";
$message .= "--".$mime_boundary."\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: base64\n";
$message .= "\n";
$message .= "Email content and what not: \n";
$message .= "This is the file you asked for! \n";
$message .= "--".$mime_boundary."" . "\n";
$message .= "Content-Type: application/octet-stream;\n";
$message .= " name=\"CTF-brochure.pdf\"" . "\n";
$message .= "Content-Transfer-Encoding: base64 \n";
$message .= "Content-Disposition: attachment;\n";
$message .= " filename=\"CTF_brochure.pdf\"\n";
$message .= "\n";
$message .= $fileContent;
$message .= "\n";
$message .= "--".$mime_boundary."--\n";
//send the email
$mail_sent = mail($to, $subject, $message, $headers);
//if the message is sent successfully print "Mail sent". Otherwise print "Mail failed"
echo $mail_sent ? "Mail sent" : "Mail failed";
Merci à l'avance!
Je remarque que vous séparez maintenant vos en-têtes d'e-mails et de mimes avec un simple "\ n", ce qui était différent dans votre dernière question. Avez-vous essayé de faire un "\ n" unique pour les en-têtes d'email mais "\ r \ n" pour les en-têtes mime? – Inshallah
merci pour la suggestion, mais il casse juste si je fais cela. – Drew