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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problème d'envoie de pièce jointe avec la fonction mail();

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

par hakazizi » 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.

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

par stealth35 » 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 ?

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

par hakazizi » 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';}
?>