Bonjour à tous,
J'ai un souci avec une fonction d'envoie de mail. Je join une piéce jointe, mais a la réception du mail lors de l'ouverture il m'affiche rien de la piéce jointe d'origine.
Si une personne trouve la solution je suis preneur!!!
Merci de votre aide
Code affichage du formulaire:
<?php
connexion();
$result = mysql_query("SELECT * FROM `recrutement` WHERE id_recrutement = '".$_GET['annonce']."'") or die(mysql_error());
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
?>
<form enctype="multipart/form-data" action="index.php?page=form_email" method=POST>
<center>
De: <input type=text name = "from" size="30"><br />
<?php echo 'Sujet: <input type=text name = "sujet" value = "'.$row['poste'].'" size="30"><br /><br />'; ?>
Texte :<br /><textarea name="message" rows="15" cols="40"></textarea><br />
Curriculum vitae :<input type=file name="monfichier"><br />
<input type=submit value="envoi">
</center>
</form>
<?php
}
?>
traitement:
<?php
//-----------------------------------------------
//DECLARE LES VARIABLES
//-----------------------------------------------
$email_expediteur=$_POST['from'];
$email_reply=$_POST['from'];
$destinataire = 'test@[...].com';
$file= $_FILES['monfichier']['name'];
//-----------------------------------------------
//GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
//-----------------------------------------------
$frontiere = '-----=' . md5(uniqid(mt_rand()));
//-----------------------------------------------
//HEADERS DU MAIL
//-----------------------------------------------
$headers = 'From: "Nom" <'.$email_expediteur.'>'."\n";
$headers .= 'Return-Path: <'.$email_reply.'>'."\n";
$headers .= 'MIME-Version: 1.0'."\n";
$headers .= 'Content-Type: multipart/mixed; boundary="'.$frontiere.'"';
//-----------------------------------------------
//MESSAGE TEXTE
//-----------------------------------------------
$message = 'This is a multi-part message in MIME format.'."\n\n";
$message .= '--'.$frontiere."\n";
$message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $_POST['message']."\n\n";
$message .= '--'.$frontiere."\n";
//-----------------------------------------------
//PIECE JOINTE
//-----------------------------------------------
$message .= "Content-Type: application/msword; name=\"$file\"\n";
$message .= "Content-Transfer-Encoding: base64\n";
$message .= "Content-Disposition: attachment; filename=\"$file\"\n\n";
$fd = fopen( $file, "r" );
$contenu = fread( $fd, filesize( $file ) );
$fp = fopen($file, "rb" );
$buff = fread($fp, filesize($file));
fclose($fp);
$message .= chunk_split(base64_encode($buff));
$message .= "\n\n\n------=$frontiere\n";
if(mail($destinataire,$sujet,$message,$headers))
{
echo 'Le mail a été envoyé';
}
else
{
echo 'Le mail n\'a pu être envoyé';
}
?>