axel098
Messages postés1Date d'inscriptionlundi 25 janvier 2016StatutMembreDernière intervention25 janvier 2016
-
Modifié par jordane45 le 26/01/2016 à 16:02
jordane45
Messages postés38238Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 6 septembre 2024
-
26 janv. 2016 à 16:13
Bonjour à tous,
Je suis entrain de créer un formulaire en php avec plusieurs champs.
Une page envoie.php qui vérifie si tous les champs sont bien remplie et qui envoie le mail. (pour l'instant ça fonctionne)
Maintenant je voudrai avoir la possibilité d'ajouter une pièce jointe à mon mail. J'ai donc rajouté un champ supplémentaire à mon formulaire et j'ai essayé de modifier la page envoie.php sans succès. Cela fait 3jours que mes essais non rien donnés... j'ai regardé plusieurs tutos mais je n'arrive pas à l'adapter à mon code et je commence à baisser les bras. Si vous pouviez m'aider je vous en remercie d'avance (je ne suis pas super fort en php).
jordane45
Messages postés38238Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 6 septembre 2024345 Modifié par jordane45 le 26/01/2016 à 16:14
Bonjour,
Pour commencer ... que contient ta balise FORM ?
Ensuite, côté PHP ... que contiennent tes variables $_POST et $_FILES ? (fais en des PRINT_R pour le voir )
Au cas où, voici une fonction PHP que tu peux utiliser pour envoyer des mails AVEC pièce jointe :
/**
* $to : Destinataire (toto@qqchose.fr)
* $subject : Sujet du mail ( "ceci est un mail")
* $msg : Contenu du message
* $filePath : Chemin du fichier à mettre en PJ ( "/fichiers/h13eree5632.xls")
* $Cc : Copie Carbone (pour mettre quelqu'un en copie du mail.
* $Libelle_de_la_piece_jointe : MonClasseur.xls
*/
function Envoi_Mail($to,$subject="",$msg="",$filePath="",$lib_fic="",$Cc=NULL) {
// Creation de l'entete du mail a envoyer
// --------------------------------------
$boundary = md5(uniqid(microtime(), TRUE));
$headers = "From: $from\r\n";
$headers .= $Cc ? "Cc: $cc\n" :'';
$headers .= 'Mime-Version: 1.0'."\r\n";
$headers .= 'Content-Type: multipart/mixed;boundary='.$boundary."\r\n";
$headers .= "\r\n";
// Creation du message a envoyer
// -----------------------------
$message =
"--" . $boundary . "\r\n" .
"Content-type: text/html; charset=ISO-8859-15" . "\r\n\r\n
<html>
<body style='margin:10px 0px 0px 30px;
color:#393989;
font-family:Arial;
font-size:13px;' >
".$msg."
</body>
</html>\r\n";
// Piece jointe
// ------------
if (trim($filePath) != '' && file_exists($filePath)) {
$file_type = filetype($filePath);
$file_size = filesize($filePath);
$handle = fopen($filePath, 'r') or die("Le fichier $filePath ne peut etre ouvert");
$content = fread($handle, $file_size);
$content = chunk_split(base64_encode($content));
$f = fclose($handle);
$message .= '--'.$boundary."\r\n";
$message .= 'Content-type:'.$file_type.';name='. preg_replace("/^[0-9]+_/", "", $lib_fic) ."\r\n";
$message .= 'Content-transfer-encoding:base64'."\r\n\r\n";
$message .= $content."\r\n";
}
// Envoi du mail
// -------------
return mail($to, $objet, $message, $headers);
}