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 du contenu d'une pièce jointe par mail


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 22
    Points : 18
    Points
    18
    Par défaut [Mail] Envoi du contenu d'une pièce jointe par mail
    Bonjour,

    Je préfère commencer par dire que je n'ai malheureusement pas le droit d'utiliser la classe PHPMailer.
    Voici mon problème : j'essaie d'envoyer une pièce jointe dans mon mail, le soucis c'est que ça me ressort dans le mail :
    CONTENU DU MAIL EN HTML

    Content-Type: image/jpeg; name="test.JPG" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="test.JPG" /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAFuAyADASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL etc ...
    Le contenu de la pièce jointe est affichée mais impossible d'avoir accès à cette pièce jointe.

    Voici 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
     
      $attachement = "";      
      // Récupération de la pièce jointe
      if(isset($_FILES['NomFichier']) && $_FILES['NomFichier']['name'] != '')
      {
        set_time_limit(0);
        if(!is_uploaded_file($_FILES['NomFichier']['tmp_name']))
          echo('Erreur : Fichier non téléchargé!');
        else
        {
          $type = $_FILES['NomFichier']['type'];
          $nom_fichier = $_FILES['NomFichier']['name'];
          $nom_tmp = $_FILES['NomFichier']['tmp_name'];
     
          $fd = fopen($nom_tmp, "r" );
          $contenu = fread($fd, filesize($nom_tmp));
          $encoded_attach = chunk_split(base64_encode($contenu));
          fclose($fd);
     
          $attachement .= "Content-Type: ".$type."; name=\"".$nom_fichier."\"\n";
          $attachement .= "Content-Transfer-Encoding: BASE64\n";
          $attachement .= "Content-Disposition: attachment; filename=\"".$nom_fichier."\"\n\n";
          $attachement .= $encoded_attach; 
          $attachement .= "\n\n\n"; 
        }
      }
    Dans mon entête de mail, j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      $entete  = "MIME-Version: 1.0\r\n";
      $entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
      $entete .= "X-Priority: 1\n";
      $entete .= "From: ME \n";
    Si vous avez une idée pour m'aider, elle est la bienvenue.
    Merci.

    edit : j'ai oublié de préciser que si je mets : "Content-type: multipart/mixed; " dans l'entête, ça fait la même chose.

  2. #2
    Membre averti Avatar de TucSale
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 264
    Points : 325
    Points
    325
    Par défaut
    bonjour, je pense qu'il faut que tu separes les differents élèments de ton continu avec un boundary.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $limite = "_parties_".md5(uniqid(rand()));
    $attachement .= "------=".$limite."\n";
      $attachement .= "Content-Type: ".$type."; name=\"".$nom_fichier."\"\n";
          $attachement .= "Content-Transfer-Encoding: BASE64\n";
          $attachement .= "Content-Disposition: attachment; filename=\"".$nom_fichier."\"\n\n";
          $attachement .= $encoded_attach; 
          $attachement .= "\n\n\n";

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $limite = "_parties_".md5(uniqid(rand()));
    $entete  = "MIME-Version: 1.0\r\n";
      $entete .= "Content-Type: multipart/mixed;\n";
      $entete .= "From: ME \n";
     $entete .= " boundary=\"----=$limite\"\n\n";

    Après je vois pas .... :s désolé

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    Merci pour ton aide. J'essaie de placer des "boundary" mais ça me fait toujours la même chose ...

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/03/2013, 12h59
  2. Envoie une pièce jointe par mail en RPGle
    Par Lisogane dans le forum AS/400
    Réponses: 2
    Dernier message: 03/03/2011, 17h57
  3. Envoyer une pièce jointe avec mail
    Par oc_alex86 dans le forum Réseau
    Réponses: 1
    Dernier message: 15/01/2009, 23h21
  4. Réponses: 11
    Dernier message: 21/05/2008, 12h20
  5. Envoi Pièce Jointe par Mail via 4D
    Par mxh77 dans le forum 4D
    Réponses: 6
    Dernier message: 25/09/2007, 18h05

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