IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Envoyer mail avec pièce jointe


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Envoyer mail avec pièce jointe
    Bonjour à tous,

    J'ai passé toute la journée sur ce code pour essayer d'envoyer un mail avec une pièce jointe via un formulaire.
    Le mail arrive bien dans ma boite avec une petite trombone pour me dire qu'il y a une pièce jointe et quand je l ouvre il n' y a pas de pièce jointe et pas de message.
    Mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
    <?php
    $nom = $_POST['nom'];
    $prenom = $_POST['prenom'];
    $mail = $_POST['mail'];
    $commentaires= $_POST['commentaires'];
    $fichier=$_POST['fichier'];
    $upload=$_POST['upload'];
     
     
    if( isset($_POST['upload']) ) // si formulaire soumis
    {
    $content_dir = 'upload/'; // dossier où sera déplacé le fichier
    $tmp_file = $_FILES['fichier']['tmp_name'];
    if( !is_uploaded_file($tmp_file) )
    {
    exit("Le fichier est introuvable");
    }
    // on vérifie maintenant l'extension
    $type_file = $_FILES['fichier']['type'];
     
    // on copie le fichier dans le dossier de destination
    $name_file = $_FILES['fichier']['name'];
    if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
    {
    exit("Impossible de copier le fichier dans $content_dir");
    }
    echo "Le fichier a bien été uploadé";
    }
     
     
    //====éclaration des messages au format texte et au format HTML
    $message_txt ="Nom : ";
    $message_html = "<html><head></head><body><b>Données pour la demande d'accès</b>,<br><br> <b>Nom :</b> $nom <br> <b>Prenom :</b> $prenom <br> <b>Email: </b> $mail </body></html>";
    //==========
     
    //=====Lecture et mise en forme de la pièce jointe
    $fichier1  = fopen($content_dir . $name_file, "r" );
    $attachement = fread($fichier1, filesize($content_dir . $name_file));
    $attachement = chunk_split(base64_encode($attachement));
    fclose($fichier1);
    //==========
    //=====Création de la boundary
    $boundary = "-----=".md5(rand());
    $boundary_alt = "-----=".md5(rand());
    //==========
     
    //====éfinition du sujet
    $sujet = "Salut  mon ami !";
    //=========
     
    //=====Création du header de l'e-mail
    $header = "From: \"Mars\"<mccm@netplus.ch>\n";
    $header.= "Reply-to: \"Mars\" <mccm@netplus.ch>\n";
    $header.= "MIME-Version: 1.0\n";
    $header.= "Content-Type: multipart/mixed;\n boundary=\"$boundary\"\n";
    //==========
     
    //=====Création du message
    $message = "\n--".$boundary."\n";
    $message.= "Content-Type: multipart/alternative;\n boundary=\"$boundary_alt\"\n";
    $message.= "\n--".$boundary_alt."\n";
    //=====Ajout du message au format texte
    $message.="Content-Type: text/plain; charset=\"ISO-8859-1\"\n";
    $message.="Content-Transfer-Encoding: 8bit\n";
    $message.= $message_txt."\n";
    //==========
     
    $message.= "\n--".$boundary_alt."\n";
     
    //=====Ajout du message au format HTML
    $message.="Content-Type: text/html; charset=\"ISO-8859-1\"\n";
    $message.="Content-Transfer-Encoding: 8bit\n";
    $message.= $message_html."\n";
    //==========
     
    //=====On ferme la boundary alternative
    $message.= "\n--".$boundary_alt."--\n";
    //==========
     
    $message.= "\n--".$boundary."\n";
     
    //=====Ajout de la pièce jointe
    $message.= "Content-Type: application/pdf;\n name=\"$fichier\"\n";
    $message.= "Content-Transfer-Encoding: base64\n";
    $message.= "Content-Disposition: attachment;\n filename=\"$fichier\"\n";
    $message.= "\n".$attachement."\n\n";
    $message.= "\n--".$boundary."--\n";
    echo $message;
    //==========
    //=====Envoi de l'e-mail
    mail("mccm@netplus.ch",$sujet,$message,$header);
    ?>
    J' ai contrôlé que mon fichier étais bien uploadé et c' est le case le fichier et bien là. Merci a celui qui pourra m'aider.

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762

Discussions similaires

  1. [batch] envoyer mail avec pièce jointe sous dos ou telnet
    Par ritchie23 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 15/10/2008, 21h58
  2. Réponses: 3
    Dernier message: 08/08/2007, 11h40
  3. Envoyer un mail avec pièce jointe
    Par anirose dans le forum VBA Access
    Réponses: 6
    Dernier message: 08/11/2006, 12h45
  4. Envoyer un mail avec pièce jointe (javascript)
    Par Dorra_26 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 21/07/2006, 08h31
  5. [C++/MFC]Envoyer un mail avec Pièce jointe
    Par cjacquel dans le forum MFC
    Réponses: 4
    Dernier message: 12/06/2006, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo