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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Mail piece jointe vide


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 35
    Par défaut Mail piece jointe vide
    Bonsoir à tous,

    je suis en train d'essayer un code permettant d'ajouter une pièce jointe à un formulaire mail (http://a-pellegrini.developpez.com/tutoriels/php/mail/#L3.4). Cependant j'ai un petit problème avec...

    En effet, lorsque l'adresse mail de destination est celle de mon adresse laposte, je me retrouve avec un mail qui contient deux fichiers vides (alors que le poids du mail est bien celle de l'image, à quelques ko près bien sûr). Le premier fichier est bien nommé, et le second n'a pas de nom de fichier...

    Cependant, si l'adresse mail de destination est celle de mon adresse gmail, aucun soucis... J'ai bien ma pièce jointe qu'on peut ouvrir...

    J'ai tout retourné, j'ai même fait en sorte que le fichier uploadé soit enregistré sur le ftp pour être certain que le flux passe bien...

    Si vous avez une idée, je suis preneur !

    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
    55
    <?php
    // To
    $to = 'xxxxx@laposte.net';
     
    // Subject
    $subject = 'Test Mail';
     
    // clé aléatoire de limite
    $boundary = md5(uniqid(microtime(), TRUE));
     
    // Headers
    $headers = 'From: Adrien Pellegrini <mail@server.com>'."\r\n";
    $headers .= 'Mime-Version: 1.0'."\r\n";
    $headers .= 'Content-Type: multipart/mixed;boundary='.$boundary."\r\n";
    $headers .= "\r\n";
     
    // Message
    $msg = 'This is a multipart/mixed message.'."\r\n\r\n";
     
    // Texte
    $msg .= '--'.$boundary."\r\n";
    $msg .= 'Content-type:text/plain;charset=utf-8'."\r\n";
    $msg .= 'Content-transfer-encoding:8bit'."\r\n";
    $msg .= 'Un message avec une pièce jointe.'."\r\n";
     
    // Pièce jointe
    $file_name = $_FILES['pj']['name'];
    $file_size = $_FILES['pj']['size'];
    $file_type = $_FILES['pj']['type'];
    $file_tmp = $_FILES['pj']['tmp_name'];
     
    $realpath = '/homez.727/xxxxxx/www/tmp/';
    move_uploaded_file($_FILES['pj']['tmp_name'],$realpath.$file_name);
    $file_tmp2 = $realpath.$file_name;
     
    if (file_exists($file_tmp2))
    {
    	echo 'ok';
     	$handle = fopen($file_tmp2, 'rb') or die('File '.$file_name.'can t be open');
    	$content = fread($handle, $file_size);
    	$content = chunk_split(base64_encode($content));
    	$f = fclose($handle);
     
    	$msg .= '--'.$boundary."\r\n";
    	$msg .= 'Content-type:'.$file_type.';name='.$file_name."\r\n";
    	$msg .= 'Content-transfer-encoding:base64'."\r\n";
    	$msg .= $content."\r\n";
    }
     
    // Fin
    $msg .= '--'.$boundary."\r\n";
     
    // Function mail()
    mail($to, $subject, $msg, $headers);
    ?>
    Autre chose, sur mon compte laposte, le texte "Un message avec une pièce jointe" n'apparaît pas...

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 35
    Par défaut Modif
    Bonjour,

    j'ai du "mieux", j'ai ajouter deux tirets après le dernier boundary, du coup j'ai bien qu'un seul fichier attaché au mail, cependant ce fichier est toujours vide alors que le poids du mail montre que les données sont bien là !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Fin
    $msg .= '--'.$boundary."--\r\n";

  3. #3
    Invité de passage
    Profil pro
    Inscrit en
    Février 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 1
    Par défaut
    J'ai le même problème avec le code du tutoriel d'Adrien Pellegrini. Le fichier pièce jointe est vide à l'arrivée.
    Je n'ai pas compris les manips dans la partie file du code.

    Merci pour vos réponses.

Discussions similaires

  1. Récuperer un mail+piece jointe
    Par ons dans le forum C#
    Réponses: 6
    Dernier message: 27/03/2007, 11h44
  2. [Mail] Problème réception mail/pieces jointes
    Par pymouse dans le forum Langage
    Réponses: 1
    Dernier message: 18/04/2006, 17h07
  3. [Mail] piece jointe et Outlook
    Par maxonman dans le forum Langage
    Réponses: 2
    Dernier message: 18/09/2005, 23h33
  4. [C#] Mail piece jointe
    Par alexischmit dans le forum ASP.NET
    Réponses: 11
    Dernier message: 04/07/2005, 16h08

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