problème d'envoie de pièce jointe avec la fonction mail();

Mammouth du PHP | 558 Messages

13 juil. 2010, 17:40

Bonjour,
Lors de l'envoie je ne reçoit qu'une seul pièce jointe sur les deux. Les fichiers sont bien sur le serveur. je ne comprend pas ou je me suis planté.
<?php
$boundary='glandouillepas';
//En-têtes du mail
$headers="MIME-Version: 1.0\r\n";
$headers.="Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
$headers.="From: [email protected]\r\n";


//Corps du mail en commençant par le message principal
$body="--". $boundary ."\n";
$body.="Content-Type: text/plain; charset=ISO-8859-1\r\n";
$body.="Bonjour,
Je souhaiterais vous faire part de ma candidature spontanée pour un poste de plombier chauffagiste 
Veuillez trouver ci-joint mon CV ainsi qu'une lettre de motivation.\n\n";







/* Pièce jointe, on va dire que notre fichier s'appelle bidule.doc et qu'il se situe dans le répertoire courant */
$fichier=file_get_contents('./lettre_mottivation.doc');
/* On utilise aussi chunk_split() qui organisera comme il faut l'encodage fait en base 64 pour se conformer aux standards */
$fichier=chunk_split( base64_encode($fichier) );

//Écriture de la pièce jointe
$body.="--" .$boundary. "\n";
$body.="Content-Type: application/msword; name=\"lettre_mottivation.doc\"\r\n";
$body.="Content-Transfer-Encoding: base64\r\n";
$body.="Content-Disposition: attachment; filename=\"lettre_mottivation.doc\"\r\n";
$body.="$fichier";

//Fermeture de la frontière
//j'ai essayé avec et sans la fermeture de la frontière à ce niveau
//$body.= "--" . $boundary ."--";







/* Pièce jointe, on va dire que notre fichier s'appelle bidule.doc et qu'il se situe dans le répertoire courant */
$fichier=file_get_contents('./CV_Hakim_AZIZI.docx');
/* On utilise aussi chunk_split() qui organisera comme il faut l'encodage fait en base 64 pour se conformer aux standards */
$fichier=chunk_split( base64_encode($fichier) );

//Écriture de la pièce jointe
$body.="--" .$boundary. "\n";
$body.="Content-Type: application/msword; name=\"CV_Hakim_AZIZI.docx\"\r\n";
$body.="Content-Transfer-Encoding: base64\r\n";
$body.="Content-Disposition: attachment; filename=\"CV_Hakim_AZIZI.docx\"\r\n";
$body.="$fichier";

//Fermeture de la frontière
$body.= "--" . $boundary ."--";

//Envoi du mail
if(mail("[email protected]", "Candidature", $body, $headers)){ echo'envoyer';}else{echo'ERREUR';}
?>
Modifié en dernier par hakazizi le 13 juil. 2010, 18:08, modifié 3 fois.

ViPHP
ViPHP | 5462 Messages

13 juil. 2010, 17:46

essaye avec multipart/alternative
sinon pour le boundary rajoute un uniqid()

t'as l'accès au log de mail ?

Mammouth du PHP | 558 Messages

13 juil. 2010, 17:54

essaye avec multipart/alternative
sinon pour le boundary rajoute un uniqid()

t'as l'accès au log de mail ?
Merci stealth35 comme tu me l'as conseillé j'ai essayé multipart/alternative.
Et cela fonctionne niquel
J'ai bien les 2 pièces jointes.