Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2519 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Ajout de pièce jointe dans un mail

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ajout de pièce jointe dans un mail

n°2059983
Wølf
Posté le 28-02-2011 à 10:53:11  profilanswer
 

Bonjour à tous !
 
Je viens vers vous suite à un problème, dont je ne pensais pas que ça allait en être un, celui de l'envoi de pièce jointe par mail, via un formulaire en ligne. Je propose un formulaire à l'utilisateur qui lui permet de me contacter, en joignant son CV (et sa lettre de motivation, mais c'est le même principe je suppose).
 
L'envoi de mail marche très bien, mais joindre le CV que l'utilisateur propose est un enfer, je suis dessus depuis 2j sans succès :(  
J'ai trouvé des pistes comme quoi il faudrait d'abord héberger le fichier sur le serveur à l'aide de move_uploaded_file, puis ensuite le joindre au message mais ... j'ai essayé bien des méthodes, sans succès.
 
Halte au blabla, place au code pour vous donner de l'inspiration :
 
HTML :

Citation :

<form enctype="multipart/form-data" action="index.php?menu=postuler_envoi" method="POST" name="postuler" style='padding:5px;border:2px solid Crimson;width:600px;' onSubmit="return verif_postuler();" onReset="return confirm('Voulez-vous vraiment réinitialiser les données ?');">
 
  <table>
   <tr>
    <td>Nom : <input type='text' name='nom'>
   <tr>
    <td>Prénom : <input type='text' name='prenom'>
   <tr>
    <td>Mail : <input type='text' name='mail'>
   <tr>
    <td>CV : <input type='file' name='cv'>
   <tr>
    <td>Lettre de motivation : <input type='file' name='lettre'><br /><br />
   <tr>
    <td>Veuillez cocher les thématiques souhaitées :<br />
     <input type="checkbox" name="theme[]" value="culture" />Culture
     <input type="checkbox" name="theme[]" value="sports" />Sports
     <input type="checkbox" name="theme[]" value="citoyennete" />Citoyenneté<br />
     <input type="checkbox" name="theme[]" value="loisirs" />Loisirs
     <input type="checkbox" name="theme[]" value="solidarite" />Solidarité
     <input type="checkbox" name="theme[]" value="environnement" />Environnement
   <tr>
    <td>
     <input type='submit' value='Envoyer'>
     <input type='reset' value='Réinitialiser'>
  </table>
   
 </form>


 
Traitement PHP :

Citation :

<?php if(!empty($_POST['postuler']))
  {
   $nom = $_POST['nom'];
   $prenom = $_POST['prenom'];
   $mail = $_POST['mail'];
   $themes = "";
   
   foreach ($theme as $choix)
    {
     $themes = $themes . " - " . "<b>" . $choix . "</b>";
    }
    $themes = $themes . " - ";
   
   move_uploaded_file($_FILES['cv']['tmp_name'], "./telechargements".$_FILES['cv']['name']);
   
   $destinataire = "alexandre.toupet@wanadoo.fr";
   $sujet = "$nom $prenom - Candidature";
     
   $from  = "From:$mail\n";
   $from .= "MIME-version: 1.0\n";
   $from .= "Content-type: text/html; charset= iso-8859-1\n";
   
   $message = "Candidature Service Civique de : <b>$nom $prenom</b> <br /><br />
   
   Thème(s) sélectionné(s) : <b>$themes</b><br /><br />
     
   Ci-joints : CV + Lettre de motivation du candidat.";  
  }
   
  mail($destinataire,$sujet,$message,$from);?>


 
Voilà, comme vous pouvez le voir, j'essaie là juste de copier le fichier sur le serveur, et cela ne marche pas. Cela vient il d'un problème de syntaxe ? Propre au serveur ? Autre ? (A noter que j'ai fait un chmod 777 au dossier cible -telechargement-
 
Merci à toutes celles et ceux qui s'intéresseront à mon problème et me permettront de mener à bien mon script ! :)

mood
Publicité
Posté le 28-02-2011 à 10:53:11  profilanswer
 

n°2060000
billgatesa​nonym
Posté le 28-02-2011 à 11:24:40  profilanswer
 

Bonjour,
 
L'en-tête me parait trop simpliste.
D'abord, il n'est pas très propre de mettre Content-type dans $from.
 
Ensuite, il manque l'indication multipart et sans doute d'autres aussi.
(le multipart qu'il faut aussi le marquer dans l'en-tête du mail n'a rien à voir avec le multipart pour le form)
Et comme ce sera un mail multipart, il faudra un en-tête pour chaque partie.
 
Les fichiers Word pouvant contenir des données non-Ascii, il est conseillé de définir un Content-Transfer-Encoding, voir http://en.wikipedia.org/wiki/MIME
Pour faire un test, essayez d'abord avec un fichier texte simple.
 
Dans la documentation de PHP, http://fr.php.net/manual/fr/function.mail.php, vous trouverez des exemples.
Par exemple, voyez la note de akam du 28-May-2008 03:55, et la note de jdephix du 02-Mar-2005 09:25.


Message édité par billgatesanonym le 28-02-2011 à 11:39:38

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Ajout de pièce jointe dans un mail

 

Sujets relatifs
copier lignes excel et coller dans corps de mail outlook (VBA)[Projet] Notifieur de mail USB adapté à Thunderbird
bon de commande a envoyer vers mon adresse mailInsérer logo dans mail
Envoi automatique mail avec PJ via thunderbird[Résolu][PHP/SQL] Ajout variable données inscrite dans bdd par tierce
Ajouter un champ DE lors d'un envoi de mail en VBA ?Ajout de lignes dans une table
chercher mail dans une chaine de caractère en php 
Plus de sujets relatifs à : Ajout de pièce jointe dans un mail


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR