Partage

mail php pièce jointe

Sujet résolu
Le 10 avril 2009 à 12:06:26

Bonjour je souhaite rajouter une pièce jointe dans mon mail en php j'ai fais ceci :
<?php
		     $headers ='From: "'.$from.'"<secret@hto.fr>'."\n";
		     $headers .='Reply-To: secret@hto.fr'."\n";
		     $headers .= 'MIME-Version: 1.0'."\n"; 
		     $headers .='Content-Type: multipart/mixed; charset="UTF-8"'."\n";
		     $headers .='Content-Transfer-Encoding: 8bit';

$message ='lalalal';

if($_POST['pj'] != '')//piece jointe
{
switch(strrchr(basename($_POST['pj']), ".")){
case ".gz": $ctype = "application/x-gzip"; break;
case ".tgz": $ctype = "application/x-gzip"; break;
case ".zip": $ctype = "application/zip"; break;
case ".pdf": $ctype = "application/pdf"; break;
case ".png": $ctype = "image/png"; break;
case ".gif": $ctype = "image/gif"; break;
case ".jpg": $ctype = "image/jpeg"; break;
case ".txt": $ctype = "text/plain"; break;
case ".htm": $ctype = "text/html"; break;
case ".html": $ctype = "text/html"; break;
default: $ctype = "application/octet-stream"; break;
} 


     $message .= 'Content-Type: '.$ctype.'; name="'.$_POST['pj'].'"'."\n";
     $message .= 'Content-Transfer-Encoding: base64'."\n";
     $message .= 'Content-Disposition:attachement; filename="'.$_POST['pj'].'"'."\n\n"; 
     $message .= chunk_split(base64_encode(file_get_contents($_POST['pj'])))."\n"; 

}


Mais le problème c'est que cela ne marche pas et cela me renvoie tout le code du message :S sans mise en page et la pièce jointe je ne la recois pas!!

Merci de votre aide !!
Publicité
Le 10 avril 2009 à 12:06:26
Le 10 avril 2009 à 12:44:36

Normal, tu t'es trompé de variable. Remplace :

<?php
     $message .= 'Content-Type: '.$ctype.'; name="'.$_POST['pj'].'"'."\n";
     $message .= 'Content-Transfer-Encoding: base64'."\n";
     $message .= 'Content-Disposition:attachement; filename="'.$_POST['pj'].'"'."\n\n"; 
     $message .= chunk_split(base64_encode(file_get_contents($_POST['pj'])))."\n"; 
?>


Par :

<?php
     $headers .= 'Content-Type: '.$ctype.'; name="'.$_POST['pj'].'"'."\n";
     $headers .= 'Content-Transfer-Encoding: base64'."\n";
     $headers .= 'Content-Disposition:attachement; filename="'.$_POST['pj'].'"'."\n\n"; 
     $headers .= chunk_split(base64_encode(file_get_contents($_POST['pj'])))."\n"; 
?>
Le 10 avril 2009 à 12:50:50

Oui mais quand je fais comme cela il n'y a plus que la pièce jointe qui est transmise dans le message :S
Le 10 avril 2009 à 13:05:26

Le 17 septembre 2013 à 9:53:42

Voilà un code que j'ai réalisé en me servant de plusieurs tuto.

Le seul qui fonctionne correctement pour moi :

http://jv-web.blogspot.fr/2013/08/tuto-php-mail-piece-jointe.html

Bebopalula

mail php pièce jointe

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown