le 07/02/2005 à 02:57
"mail ()" et pièces jointes
Bonjour,
J'ai développé un formulaire, qui, en plus de ses champs de texte, doit récupérer un fichier joint.
Tout fonctionne sauf que le mail à l'arrivée ne comprend pas de pièces jointe...
1 ) voici le code intéressant du du formulaire
je vous épargne les éléments graphiques et les champs de texte...
2 ) voici le code intéressant du script php
Ou se situe le problème ?
J'ai comme l'impression que c'est du côté des headers...
Merci d'avance pour votre aide.
J'ai développé un formulaire, qui, en plus de ses champs de texte, doit récupérer un fichier joint.
Tout fonctionne sauf que le mail à l'arrivée ne comprend pas de pièces jointe...
1 ) voici le code intéressant du du formulaire
je vous épargne les éléments graphiques et les champs de texte...
<form action="esp_recrutement_beta.php" method="post" enctype="multipart/form-data" name="formRecrutement">
....
<input type="hidden" name="MAX_FILE_SIZE" value="2048"><input name="fichier" type="file" size="20">
2 ) voici le code intéressant du script php
<?
if(!isset($_FILES)) { $_FILES = $HTTP_POST_FILES; }
$from = "expediteur@domaine.com";
$subject = "Demande d'emploi";
$to = "destinataire@domaine.com";
$message =
"Nom : ".$_POST['nom']."\n"."\n".
"Prénom : ".$_POST['prenom']."\n"."\n".
"E-mail : ".$_POST['eMail']."\n"."\n".
"Rue : ".$_POST['rue']."\n"."\n".
"Code Postal : ".$_POST['codePostal']."\n"."\n".
"Ville : ".$_POST['ville']."\n"."\n".
"Telephone : ".$_POST['telephone']."\n"."\n".
"Présentez-vous : ".$_POST['demande'];
// Obtain file upload vars
$fileatt = $_FILES['fichier']['tmp_name'];
$fileatt_type = $_FILES['fichier']['type'];
$fileatt_name = $_FILES['fichier']['name'];
$headers = "From: $from";
if (is_uploaded_file($fileatt)) {
// Read the file to be attached ('rb' = read binary)
$file = fopen($fileatt,'rb');
$data = fread($file,filesize($fileatt));
fclose($file);
// Generate a boundary string
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
// Add the headers for a file attachment
$headers .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
// Add a multipart boundary above the plain message
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$message . "\n\n";
// Base64 encode the file data
$data = chunk_split(base64_encode($data));
// Add file attachment to the message
$message .= "--{$mime_boundary}\n" .
"Content-Type: {$fileatt_type};\n" .
" name=\"{$fileatt_name}\"\n" .
"Content-Disposition: attachment;\n" .
" filename=\"{$fileatt_name}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n" .
"--{$mime_boundary}--\n";
}
// Send the message
$ok = @mail($to, $subject, $message, $headers);?>
Ou se situe le problème ?
J'ai comme l'impression que c'est du côté des headers...
Merci d'avance pour votre aide.