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] Envoi de mail avec piece jointe le fichier n'apparaît pas


Sujet :

Langage PHP

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut [Mail] Envoi de mail avec piece jointe le fichier n'apparaît pas
    Je travaille en PHP4 et mon site est hébergé.
    J'essaie d'envoyer un mail en joignant un fichier. A force de rechercher j'ai fini par trouver un code que j'ai repris en modifiant les adresses et les chemins de fichier.
    Je n'ai pas d'erreur et le mail arrive bien mais le fichier n'est pas joint.
    Par contre quand je regarde les propriétés du mail dans ma messagerie le volume du source indique bien que quelque chose a été transmis.

    Voici mon code. Si quelqu'un trouve mon erreur merci d'avance
    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
    <?php
    $to = 'destinat@wanadoo.fr';
    $subject = 'Test Direct';
    $theFile = 'ADH0003LD.txt';
    $path    = "PDF/";
    $headers = 'From: exped@wanadoo.fr';
     
     
    // TEST
    $content = "";
    $message = "";
     
     
    $boundary = '-----=' . md5( uniqid ( rand() ) );
     
    $message .= "Content-Transfer-Encoding: base64\n";
    $message .= "Content-Disposition: attachment; filename=\"$theFile\"\n\n";
     
    $fp = fopen($path.$theFile, 'r');
    do {
           $data = fread($fp, 8192);
           if (strlen($data) == 0) {break;}
           $content .= $data;
         } while (true);
    FClose($fp);
    $content_encode = chunk_split(base64_encode($content));
    $message .= $content_encode . "\n";
    $message .= "--" . $boundary . "\n";
    $message .= "--test message \n";
     
     
    $headers  = "From: \"Michel\"<exped@wanadoo.fr>\n";
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"";
    mail('destinat@wanadoo.fr', 'Email avec PJ', $message, $headers);
     
    //_________________________________header_____________________
    echo "<HTML> \n";
    echo "<BODY> \n";
     
    echo "header".$headers;
    echo "\n";
    echo "subject".$subject;
    echo "\n";
    //echo "message".$message;
    echo "\n";
    echo "to".$to;
     
    echo "</BODY> \n";
    echo "</HTML> \n";
     
     
     
    ?>

  2. #2
    Membre confirmé Avatar de GregPeck
    Inscrit en
    Novembre 2005
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 530
    Points : 540
    Points
    540
    Par défaut
    Ta ligne $message .= "--test message \n"; rajoute un message texte qui n'est pas dans ue partie.

    Il faut définir cette partie aussi avec un boundary, un content-type etc...

    Je ne sais pas si le problème viens de là, mais déjà, ça c'est pas correct, donc peut être que...

    Sinon le mieux c'est d'afficher la source du mail recu,on vois souvent mieux.
    Si tu ne trouve toujours pas, tu n'as qu'a poster la source d'un message test ici...

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut
    J'ai retiré la concaténation à la variable $message. mais cela ne change rien.

    Voilà le source du message
    J'ai coupé le corps encrypté pour éviter le volume.

    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
    Return-Path: <destin@wanadoo.fr>
    Received: from mwinf5113.me-wanadoo.net (mwinf5113.me-wanadoo.net)
    	by mwinb0901 (SMTP Server) with LMTP; Sat, 10 Dec 2005 22:15:56 +0100
    X-Sieve: Server Sieve 2.2
    Received: from me-wanadoo.net (localhost [127.0.0.1])
    	by mwinf5113.me-wanadoo.net (SMTP Server) with ESMTP id 2C8721917564
    	for <wfr35e2bc6300000013527d700b@back09-mail01-01.me-wanadoo.net>; Sat, 10 Dec 2005 22:15:56 +0100 (CET)
    Received: from smtp6.wanadoo.fr (mwinf0607 [172.22.137.37])
    	by mwinf5113.me-wanadoo.net (SMTP Server) with ESMTP id 24E051917561
    	for <wfr35e2bc6300000013527d700b@0100.back09-mail01-01.me-wanadoo.net>; Sat, 10 Dec 2005 22:15:56 +0100 (CET)
    Received: from me-wanadoo.net (localhost [127.0.0.1])
    	by mwinf0607.wanadoo.fr (SMTP Server) with ESMTP id 1648164001A8
    	for <wfr35e2bc6300000013527d700b@0100.back09-mail01-01.me-wanadoo.net>; Sat, 10 Dec 2005 22:15:56 +0100 (CET)
    Received: from mail1.nuxit.net (mail1.nuxit.net [195.14.0.10])
    	by mwinf0607.wanadoo.fr (SMTP Server) with SMTP id 5A3D564001AE
    	for <emetteur@wanadoo.fr>; Sat, 10 Dec 2005 22:15:55 +0100 (CET)
    X-ME-UUID: 20051210211555369.5A3D564001AE@mwinf0607.wanadoo.fr
    Received: (qmail 10225 invoked from network); 10 Dec 2005 21:15:54 -0000
    Received: from mutu2.nuxit.net (HELO http10) (195.14.0.21)
      by mail1.nuxit.net with SMTP; 10 Dec 2005 21:15:54 -0000
    To: emetteur@wanadoo.fr
    Subject: Email avec PJ
    From: "Michel" <destin@wanadoo.fr>
    MIME-Version: 1.0
    Content-Type: multipart/mixed; boundary="-----=c9275afaf0814548ca0d77211a97bd5a"
    Message-Id: <E1ElC5k-0003bY-G3@http10>
    Date: Sat, 10 Dec 2005 22:17:16 +0100
    Customer-Id: 67304
    Reply-To: "Michel" <destin@wanadoo.fr>
    Abuse: For any abuse, please contact abuse@nuxit.net and mention the Customer-Id above
    X-me-spamlevel: not-spam
    X-me-spamrating: 20.894881
     
    Content-Transfer-Encoding: base64
    Content-Disposition: attachment; filename="ICV_ADH0003mmmmmLD.html"
     
    PEhUTUw+PEhFQUQ+CQk8U3R5bGU+CQkJVEQuVGl0cmV7CQkJCWhlaWdodAkJOiAyMjsJCQkJYmFj
    ****************
    PC9IVE1MPg==
     
    -------=c9275afaf0814548ca0d77211a97bd5a

  4. #4
    Membre confirmé Avatar de GregPeck
    Inscrit en
    Novembre 2005
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 530
    Points : 540
    Points
    540
    Par défaut
    Le problème c'est que tu indique que c'est un multipart pourtant il n'y a qu'une partie. Ton mail devrait resembler à peu près à ca:

    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
    .....
     entete
    ......
    Content-Type: multipart/mixed;
     boundary="----=_parties_dfd24b8fb195716605cfe397711f187a"
    Message-Id: <20051209191025.16194187596@truc.fr>
     
    This is a multi-part message in MIME format.
    Ceci est un message est au format MIME.
    ------=_parties_dfd24b8fb195716605cfe397711f187a
    Content-Type: multipart/alternative;
     boundary="----=_parties_f99a82325d0a23d1910e8dfd3d7e5097"
     
    ------=_parties_f99a82325d0a23d1910e8dfd3d7e5097
    Content-Type: text/plain; charset="iso-8859-1"
    Content-Transfer-Encoding: quoted-printable
     
    Ton texte en clair
     
    ------=_parties_f99a82325d0a23d1910e8dfd3d7e5097
    Content-Type: text/html; charset="iso-8859-1"
    Content-Transfer-Encoding: quoted-printable
     
    <body>
    <p>Ton texte en HTML</p>
    </body>
     
    ------=_parties_f99a82325d0a23d1910e8dfd3d7e5097--
     
    ------=_parties_dfd24b8fb195716605cfe397711f187a
    Content-Type: image/jpeg; name="DDS03.jpg"
    Content-Disposition: attachment; filename="DDS03.jpg"
    Content-Transfer-Encoding: base64
     
    /9j/4AAQSkZJRgABAgEASABIAAD/4SB0RXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA
    rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir/9k=
    En fait à l'intérieur du premier boundary on réemcapsule un nouveau pour mettre le texte.

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut
    Merci.
    Je vais essayer de faire cela en code PHP

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut

    Quand je pense qu'il y a des bibliothèque exprès pour ça, je vois pas trop l'intéret de se palucher l'envoi d'un mail mime à la main, si ce n'est pour le challenge

    http://www.phpguru.org/static/mime.mail.html
    http://phpmailer.sf.net
    http://pear.php.net/package/Mail_Mime


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoi d' email avec piece jointe executable
    Par Cybercope dans le forum VBScript
    Réponses: 5
    Dernier message: 07/08/2014, 10h41
  2. Envoi de formulaire avec piece jointe
    Par remy182 dans le forum Langage
    Réponses: 2
    Dernier message: 20/05/2014, 09h04
  3. [PHP 5.3] Envoi de mail en texte, html, avec pièces-jointes et images....
    Par rafmos dans le forum Langage
    Réponses: 1
    Dernier message: 06/08/2010, 15h58
  4. Envoie d'email avec piece jointe
    Par hid_dev dans le forum ASP.NET
    Réponses: 4
    Dernier message: 12/05/2010, 01h33
  5. Réponses: 1
    Dernier message: 09/05/2007, 21h36

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