VOIla, donc j'ai une fonction qui permet d'envoyer un mail avec une pièce jointe.
Lorsque je choisit une pièce jointe (une image que je peux ouvrir sur mon ordi) et que je me l'envoi, je la reçoit bien mais je ne peux l'ouvrir. Elle ne doit pas être envoyée correctement je pense (mais cependant, je n'ai aucun message d'erreur).
Voici mon code :
<?
function mail_attachement($to, $sujet, $message, $fichier, $typemime, $nom, $reply, $from){
$limite = "_parties_".md5(uniqid (rand()));
$mail_mime = "Date: ".date("l j F Y, G:i")."\n";
$mail_mime .= "MIME-Version: 1.0\n";
$mail_mime .= "Content-Type: multipart/mixed;\n";
$mail_mime .= " boundary=\"----=$limite\"\n\n";
//Le message en texte simple pour les navigateurs qui n'acceptent pas le HTML
$texte = "This is a multi-part message in MIME format.\n";
$texte .= "Ceci est un message est au format MIME.\n";
$texte .= "------=$limite\n";
$texte .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$texte .= "Content-Transfer-Encoding: 8bit\n\n";
$texte .= $message;
$texte .= "\n\n";
//le fichier
$attachement = "------=$limite\n";
$attachement .= "Content-Type: $typemime; name=\"$nom\"\n";
$attachement .= "Content-Transfer-Encoding: base64\n";
$attachement .= "Content-Disposition: attachment; filename=\"$nom\"\n\n";
$fd = fopen( $fichier, "r" );
$contenu = fread( $fd, filesize( $fichier ) );
fclose( $fd );
$attachement .= chunk_split(base64_encode($contenu));
$attachement .= "\n\n\n------=$limite\n";
return mail($to, $sujet, $texte.$attachement, "Reply-to: $reply\n$from\n".$mail_mime);
}
$subjectMailing = $_POST['subject'];
$bodyMailing = $_POST['body'];
$fileMailing = $_FILES['fileAttached']['name'];
$nom = $_FILES['fileAttached']['name'];
$typemime = $_FILES['fileAttached']['type'];
$userMail = '[email protected]';
$reply = 'Reply-To: [email protected]'."\n";
$from = 'From: "Administrator"<[email protected]>'."\n";
mail_attachement($userMail, $subjectMailing, $bodyMailing, $fileMailing, $typemime, $nom, $reply, $from);
?>
EDIT :
j'ai trouvé, il fallait simplement remplacer
<? $fileMailing = $_FILES['fileAttached']['name']; ?> par <? $fileMailing = $_FILES['fileAttached']['tmp_name']; ?>