rodskin
Messages postés1Date d'inscriptionvendredi 18 juin 2010StatutMembreDernière intervention18 juin 2010
-
18 juin 2010 à 17:41
Bonjour,
Je cherche à envoyer un mail avec une pièce jointe .zip (sans utiliser PEAR).
J'ai lu des milliers d'exemples, mais ca ne marche toujours pas.
Au mieux, j'obtiens l'archive jointe sous forme de string...
voici le code utilisé:
// Read the file to be attached ('rb' = read binary)
$file = fopen($chemin.$archive,'rb');
$data = fread($file,filesize($chemin.$archive));
fclose($file);
// Generate a boundary string
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
// Add the headers for a file attachment
$headers .= "\nMIME-Version: 1.0\n" .
" Content-Type: multipart/mixed;\n" .
" From: \"newsletter-bo-cybercartes\"<>".
" boundary=\"{$mime_boundary}\"";
// Add a multipart boundary above the plain message
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$message . "\n\n";
// Base64 encode the file data
$data = chunk_split(base64_encode($data));
$archive_full = $chemin.$archive;
// Add file attachment to the message
$message .= "--{$mime_boundary}\n" .
"Content-Type: application/zip;\n" .
"name=\"{$archive}\"\n" .
"Content-Disposition: attachment;\n" .
"filename=\"{$archive_full}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n" .
"--{$mime_boundary}--\n";
$destinataire = 'moi@monmail.com';
echo('Début envoi mail');
if(mail($destinataire, "titre", $message, $headers))
echo('Le message a bien été envoyé');
else
echo('Le message n\'a pu être envoyé');
echo('Fin envoi mail');