[Résolu] Soucis envoie mail avec pièce jointe
Hors ligneShelko Le 15/12/2010 à 17:42 Profil de Shelko Configuration de Shelko

Bonjour, 

Comme je n'en fais pas tout les jour j'ai récupéré un boute de script  pour créer mon formulaire de contact avec envoie de pièce jointe.

Cela fonctionne en gros sauf que si je mets le message html je reçois un mail avec en pièce jointe mon message version html et si j'envoie mon message version texte je récupère bien une pièce jointe mais encodé avec lettre et chiffre donc pas très parlant pour le personne qui reçois le mail.

Je vous remets tous mon code ;) 

 

$uploaddir = './img/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "Le fichier est valide, et a été téléchargé avec succès. Voici plus d'informations :\n";
} else {
echo "Attaque potentielle par téléchargement de fichiers. Voici plus d'informations :\n";
print_r($_FILES);
}
//----------------------------------------------- 
//DECLARE LES VARIABLES 
//----------------------------------------------- 
 
$destinataire='shelkobiz@gmail.com'; 
$message_texte="Bonjour,\nVoici un message au format texte :\n\n
Nom : ".$_POST['nom']." ".$_POST['prenom']."\nE-mail : ".$_POST['mail']."\nDemande : \n".$_POST['msg']; 
$email_reply=$email_expediteur=$_POST['mail'];
 
$message_html="Bonjour,
Voici un message au format texte :
 
Nom : ".$_POST['nom']." ".$_POST['prenom']."
E-mail : ".$_POST['mail']."
Demande :
".$_POST['msg']; 
$email_reply=$email_expediteur=$_POST['mail'];
 
$sujet="Formulaire contact site web";
 
//----------------------------------------------- 
//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 .= $message_texte."\n\n"; 
 
//----------------------------------------------- 
//PIECE JOINTE 
//----------------------------------------------- 
 
$message .= 'Content-Type: image/jpeg; name="'.$uploadfile.'"'."\n"; 
$message .= 'Content-Transfer-Encoding: base64'."\n"; 
$message .= 'Content-Disposition:attachement; filename="'.$uploadfile.'"'."\n\n"; 
 
$message .= chunk_split(base64_encode(file_get_contents($uploadfile)))."\n"; 
 
if(mail($destinataire,$sujet,$message,$headers)) 
 echo 'Le mail a été envoyé'; 
else 
 echo 'Le mail n\'a pu être envoyé'; 
 
Donc si quelqu'un voit un truc je suis preneur.
Merci d'avance
Hors ligneAnthony Le 15/12/2010 à 20:29 Profil de Anthony Configuration de Anthony

Admin

Salut smiley

Essaie de rajouter un $message .= '--'.$frontiere."\n";  juste avant la partie :

//-----------------------------------------------
//PIECE JOINTE
//----------------------------------------------- 

Tu obtiendras ceci :

$message .= '--'.$frontiere."\n";

//-----------------------------------------------
//PIECE JOINTE
//-----------------------------------------------

--

Hors ligneShelko Le 15/12/2010 à 22:23 Profil de Shelko Configuration de Shelko

Ca fonctionne merci ;)

Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels