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 :

[Mail] envoyer plusieurs pièces jointes à la fois


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Développeur informatique
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 11
    Points
    11
    Par défaut [Mail] envoyer plusieurs pièces jointes à la fois
    Bonjour tout le monde

    j'ai besoin d'un script php qui me permet d'envoyer un mail avec 2 pieces jointes
    en faite j'ai un script qui a marcher pour une seule piece jointe ,mais je ne sais pas quoi modifier pour que ça marche pour 2 pcs.
    Merci de bien vouloir m'aider.

    voici la page de script (mail4.php) qui s'execute lors de l'envoi du formulaire sur la page (form.html):
    Code mail4.php : 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
    94
    95
    96
    97
    98
    99
    100
    101
    102
    :
    <html>
    <body> <center>
    <?
     
    $name_file = $_FILES['monfichier']['name']; 
    $source=$_FILES['monfichier']['tmp_name'];
     
    move_uploaded_file($source, "./".$name_file); 
     
    $extension=get_extension($name_file);
     
    $type="text/plain";
    if($type=="doc")
    {
       $type="text/vnd.ms-word";
    }
    else if($type=="xls")
    {
       $type="text/vnd.ms-excel";
    }
     
    $type2="image/png";
     
    if($extension=="gif")
    {
       $type2="image/gif";
    }
    else if($extension=="bmp")
    {
       $type2="image/bmp";
    }
     
    function get_extension($filename)
    {
       $parts = explode('.',$filename);
       $last = count($parts) - 1;
       $ext = $parts[$last];
       return $ext;
    }
     
    //----------------------------------
    // Construction de l'entête
    //----------------------------------
     
    if($_POST['to']!="")
    {
    $boundary = "-----=".md5(uniqid(rand()));
    $header = "MIME-Version: 1.0\r\n";
    $header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
    $header .= "\r\n";
     
    $msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n";
     
    $msg .= "--$boundary\r\n";
     
    $msg .= "Content-Type: $type; charset=\"iso-8859-1\"\r\n";
    $msg .= "Content-Transfer-Encoding:8bit\r\n";
    $msg .= "\r\n";
    $msg .= $_POST['message'];
    $msg .= "\r\n";
     
    if($name_file!="")
    {
    $file = $name_file;
    $fp = fopen($file, "rb");  
    $attachment = fread($fp, filesize($file));
    fclose($fp);
     
    $attachment = chunk_split(base64_encode($attachment));
     
     
    $msg .= "--$boundary\r\n";
    $msg .= "Content-Type: $type2; name=\"$file\"\r\n";
    $msg .= "Content-Transfer-Encoding: base64\r\n";
    $msg .= "Content-Disposition: inline; filename=\"$file\"\r\n";
    $msg .= "\r\n";
    $msg .= $attachment . "\r\n";
    $msg .= "\r\n\r\n";
    $msg .= "--$boundary--\r\n";
    }
     
    $destinataire = $_POST['to'];
    $expediteur   = $_POST['from'];
    $reponse      = $expediteur;
    echo "Mail envoyé à $destinataire";
     
    mail($destinataire, $_POST['message'], $msg,
         "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);
     
    }
     
    if($name_file!="")
    {
    unlink($name_file);
    }
    print("<br>\n");
    print("<br><A href=./mail3.php target=\"principal\"><font size=2>Envoyer un autre mail</font></A>");
    ?>
    </center>
    </body>
    </html>

    Code html : 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
    <html>
    <body> 
     
    <form ENCTYPE="multipart/form-data" action="mail4.php" method=POST>
    <center>
    De: <input type=text name = "from" size="30"><br>
    Destinataire: <input type=text name = "to" size="30"><br>
    Sujet: <input type=text name = "sujet" size="30"><br><br>
    Texte :<br><textarea name="message" rows="15" cols="40"></textarea><br>
    <INPUT TYPE=FILE NAME="monfichier"><BR><INPUT TYPE=FILE NAME="monfichier1"><br>
    <input type=submit value="envoi">
    </center>
    </form>
     
    </body>
    </html>

  2. #2
    Membre à l'essai
    Développeur informatique
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    Voici une transformation de la page mail4.php qui va être utile pour envoyer 2 pièces :

    NB:il faut créer un dossier nommé "piece_jointe" dans le même emplacement que mail4.php.

    si il y a des choses qui peuvent enrichir ce code n'hesitez pas à le corriger.

    Merci à tout le monde.


    mail4.php :
    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
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    <html>
    <body> <center>
    <?
    function get_extension($filename)
    {
       $parts = explode('.',$filename);
       $last = count($parts) - 1;
       $ext = $parts[$last];
       return $ext;
    }
    $name= $_FILES['monfichier']['name']; 
    $source=$_FILES['monfichier']['tmp_name'];
     
    $name1 = $_FILES['monfichier1']['name']; 
    $source1=$_FILES['monfichier1']['tmp_name'];
     
    $name_file="piece_jointe/".$name;
    $name_file1="piece_jointe/".$name1;
     
     
    move_uploaded_file($source, "./".$name_file); 
    move_uploaded_file($source1, "./".$name_file1); 
     
     
     
    $extension=get_extension($name_file);
     
    $type="text/html";
    if($type=="doc")
    {
       $type="text/vnd.ms-word";
    }
    else if($type=="xls")
    {
       $type="text/vnd.ms-excel";
    }
     
    $type2="image/png";
     
    if($extension=="gif")
    {
       $type2="image/gif";
    }
    else if($extension=="bmp")
    {
       $type2="image/bmp";
    }
     
     
     
    //----------------------------------
    // Construction de l'entête
    //----------------------------------
     
    if($_POST['to']!="")
    {
    $boundary = "-----=".md5(uniqid(rand()));
    $header = "MIME-Version: 1.0\r\n";
    $header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
    $header .= "\r\n";
     
    $msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n";
     
    $msg .= "--$boundary\r\n";
     
    $msg .= "Content-Type: $type; charset=\"iso-8859-1\"\r\n";
    $msg .= "Content-Transfer-Encoding:8bit\r\n";
    $msg .= "\r\n";
    $msg .= "<b>".$_POST['message']."</b>";
    $msg .= "\r\n";
     
     
    if($name1!="")
    {
    $file1 = $name_file1;
    $fp1 = fopen($file1, "rb");  
    $attachment1 = fread($fp1, filesize($file1));
    fclose($fp1);
     
    $attachment1 = chunk_split(base64_encode($attachment1));
    $msg .= "--$boundary\r\n";
    $msg .= "Content-Type: $type2; name=\"$file1\"\r\n";
    $msg .= "Content-Transfer-Encoding: base64\r\n";
    $msg .= "Content-Disposition: inline; filename=\"$file1\"\r\n";
    $msg .= "\r\n";
    $msg .= $attachment1 . "\r\n";
    $msg .= "\r\n\r\n";
    }
     
     
     
    if($name!="")
    {
    $file = $name_file;
    $fp = fopen($file, "rb");  
    $attachment = fread($fp, filesize($file));
    fclose($fp);
     
    $attachment = chunk_split(base64_encode($attachment));
     
     
     
     
    $msg .= "--$boundary\r\n";
    $msg .= "Content-Type: $type2; name=\"$file\"\r\n";
    $msg .= "Content-Transfer-Encoding: base64\r\n";
    $msg .= "Content-Disposition: inline; filename=\"$file\"\r\n";
    $msg .= "\r\n";
    $msg .= $attachment . "\r\n";
    $msg .= "\r\n\r\n";
     
     
     
    }
     
    $msg .= "--$boundary--\r\n";
    $destinataire = $_POST['to'];
    $expediteur   = $_POST['from'];
    $reponse      = $expediteur;
    echo "Mail envoyé à $destinataire";
     
    mail($destinataire, $_POST['message'], $msg,
         "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);
     
    }
     
     
     if($name!="")
    {
    unlink($name_file);
    } 
     
     if($name1!="")
    {
    unlink($name_file1);
    } 
     
    print("<br>\n");
    print("<br><A href=./mail3.php target=\"principal\"><font size=2>Envoyer un autre mail</font></A>");
     
    ?>
    </center>
    </body>
    </html>

    form.html :
    Code HTML : 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
    <html>
    <head>
     
    </head>
    <body> 
     
    <form ENCTYPE="multipart/form-data" action="mail4.php" method=POST>
    <center>
    De: <input type=text name = "from" size="30"><br>
    Destinataire: <input type=text name = "to" size="30"><br>
    Sujet: <input type=text name = "sujet" size="30"><br><br>
    Texte :<br><textarea name="message" rows="15" cols="40"></textarea><br>
    <INPUT TYPE=FILE NAME="monfichier"><BR><INPUT TYPE=FILE NAME="monfichier1"><br>
    <input type=submit value="envoi">
    </center>
    </form>
     
    </body>
    </html>

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 40
    Points : 48
    Points
    48
    Par défaut Envoi de plusieurs pièces jointes
    Le plus simple pour envoyer des mails, c'est d'utiliser la librairie libmail.php (http://lwest.free.fr/doc/php/lib/ind...e=mail&lang=fr), dans laquelle quasi toutes les fonctions sont encaspsulées.
    Ainsi, pour ajouter plusieurs pièces c'est aussi simple que $mail->Attach( "logo.gif", "image/gif" );
    J'espère que çà t'a aidé

Discussions similaires

  1. [AC-2013] Envoyer un e-mail avec PLUSIEURS pièces jointes
    Par JPJOLY dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/01/2015, 17h44
  2. envoyer plusieurs pièces jointes
    Par stagolee dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/02/2008, 16h52
  3. Envoi d'e-mails avec plusieurs pièces jointes
    Par xnomad dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 16/07/2007, 15h02
  4. Réponses: 6
    Dernier message: 14/11/2006, 10h35
  5. Envoi d'un mail avec plusieurs pièces jointes
    Par Wilco dans le forum Composants VCL
    Réponses: 3
    Dernier message: 04/04/2006, 10h19

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