Bon, j'ai testé un nouveau code avec des valeurs perso et une image ($LM='images/logo.png')...
Je reçois le mail avec la pièces jointe ;-)
Je n'avais pas vu cela, mais il manquait cette ligne pour les pièces jointes
$msg.='Content-Disposition: attachment; filename="'.$file_name.'"'.$eol.$eol;
La nouvelle variable $txt (contenant uniquement le texte lu par le destinataire) ainsi que $Objet2 sont convertis en Base64 afin que les accents soient pris en compte.
Par contre, il faudra voir comment déterminer le type MIME d'un fichier. Ce n'est pas le rôle de la fonction filetype().
Dans mon test, j'ai mis 'image/png'.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| <?php
// clé aléatoire de limite
$boundary = md5(uniqid(microtime(), TRUE));
$eol="\n";
// Texte
$txt ='Bonjour, '.$eol.$eol;
$txt.='Ce mail a été envoyé depuis moi.com '.$eol.$eol;
$txt.='L\'Email de la personne est : '.$Email.$eol;
$txt.='L\'Objet du message est : '.$Objet.$eol;
$txt.='Un message avec une pièce jointe'.$eol;
$txt = chunk_split(base64_encode($txt));
// Headers
$headers ='From: '.$Email.$eol;
$headers.='Return-Path: '.$Email.$eol;
$headers.='Reply-To: '.$Email.$eol;
$headers.='X-Priority: 3'.$eol;
$headers.='X-Mailer: PHP/'.phpversion().$eol;
$headers.='MIME-Version: 1.0'.$eol;
$headers.='Content-Type: multipart/mixed; boundary="'.$boundary.'"'.$eol.$eol;
// Message
$msg ='This is a multi-part/mixed message in MIME format.'.$eol;
$msg.='--'.$boundary.$eol;
$msg.='Content-Type: text/plain; charset="UTF-8"'.$eol;
$msg.='Content-Transfer-Encoding: base64'.$eol.$eol;
$msg.=$txt;
// Pièce jointe LM
$file_name = $LM;
if (file_exists($file_name))
{
$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);
$file_name=basename($file_name);
$msg.='--'.$boundary.$eol;
$msg.='Content-type: '.$file_type.'; name="'.$file_name.'"'.$eol;
$msg.='Content-Transfer-Encoding: base64'.$eol;
$msg.='Content-Disposition: attachment; filename="'.$file_name.'"'.$eol.$eol;
$msg.=$content.$eol;
}
// Pièce jointe CV
$file_name = $CV;
if (file_exists($file_name))
{
$file_type = filetype($file_name);
$file_type = 'text/plain';
$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);
$file_name=basename($file_name);
$msg.='--'.$boundary.$eol;
$msg.='Content-type: '.$file_type.'; name="'.$file_name.'"'.$eol;
$msg.='Content-Transfer-Encoding: base64'.$eol;
$msg.='Content-Disposition: attachment; filename="'.$file_name.'"'.$eol.$eol;
$msg.=$content.$eol;
}
// Fin
$msg.='--'.$boundary.'--'.$eol;
$Objet2 ='=?UTF-8?B?'.base64_encode('Poste demandé par SOUASOUA.COM: '.$Objet).'?=';
// Function mail()
mail($to, $Objet2, $msg, $headers);
?> |
Partager