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] Syntaxe pour envoi d'e-mail avec pièce jointe [Fait]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 26
    Points : 17
    Points
    17
    Par défaut [Mail] Syntaxe pour envoi d'e-mail avec pièce jointe
    Bonsoir,

    j'ai des difficultés à envoyer en php un mail avec une image jpg en piece jointe.

    Je reçois bien le mail avec une pièce jointe, mais pas celle envoyée et en faite un fichier texte contenant un ensemble de chiffres et de lettres, sans doute le cryptage du fichier. Si quelqu'un veut bien me venir en aide, ci-joint le code.

    Merci

    Michel

    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
     
    <?php
    $frontiere = '-----=' . md5(uniqid(mt_rand())); 
    //En-têtes du mail
    $headers="From: xxx@free.fr\r\n
    MIME-Version: 1.0\r\n
    Content-Type: multipart/mixed; boundary=\"$frontiere\"\r\n\n";
     
    //Corps du mail en commençant par le message principal
    $body="--". $frontiere ."\n
    Content-Type: text/plain; charset=ISO-8859-1\r\n\n
    Content-Transfer-Encoding: 8bit\n\n
    Message principal du mail dernier envoi.\n\n";
     
    /* Piece jointe, on va dire que notre fichier s'appele bidule.doc et qu'il se situe dans le repertoire courant */
     
    $fichier=file_get_contents('./M45W_2008_11_22_L2.jpg');
    /* On utilise aussi chunk_split() qui organisera comme il faut l'encodage fait en base 64 pour se conformer aux standards */
    $fichier=chunk_split( base64_encode($fichier) );
     
    //Ecriture de la pièce jointe
    $body = $body . "--" .$frontiere. "\n
    Content-Type: image/jpeg; name=\"M45W_2008_11_22_L2.jpg\"\r\n
    Content-Transfer-Encoding: base64\r\n
    Content-Disposition:attachement; filename=\"M45W_2008_11_22_L2.jpg\"\r\n\n
    $fichier";
     
    //Fermeture de la frontière
    $body = $body . "--" . $frontiere ."--";
     
    //Envoi du mail
    mail("xxx@free.fr", "Envoi dernière image", $body, $headers);
    ?>

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Pour envoyer des pièces jointes par e-mail, le plus simple est d'utiliser des bibliothèques qui existent déjà comme PHPMailer par exemple :
    http://stephaneey.developpez.com/tut...php/phpmailer/

    Tu as un exemple d'envoi de pièce jointe là :
    http://stephaneey.developpez.com/tut...hpmailer/#L6.4

Discussions similaires

  1. Macro pour envoi d'un powerpoint en pièce jointe
    Par lozeba dans le forum Microsoft Office
    Réponses: 1
    Dernier message: 04/06/2014, 12h35
  2. Macro pour envoi d'un powerpoint en pièce jointe
    Par lozeba dans le forum VBA PowerPoint
    Réponses: 0
    Dernier message: 26/05/2014, 15h12
  3. Script shell pour l'envoi de mail avec piéce jointe
    Par 20132014 dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 24/11/2013, 13h49
  4. Réponses: 2
    Dernier message: 24/06/2013, 23h19
  5. [VB]Bp envoie mail avec piéce jointe
    Par jm1213 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 17/02/2006, 20h55

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