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] Cherche script PHP mail avec pièce jointe


Sujet :

Langage PHP

  1. #1
    Membre habitué
    [Mail] Cherche script PHP mail avec pièce jointe
    Bonjour,
    Cela fait 4 jours que je galère,
    J'ai cherché, cherché... mais aucun des bouts de codes
    que j'ai trouvés ne fonctionnent !

    Je cherche un script simple pour envoyer un email
    avec une pièce jointe.

    Merci de bien vouloir me tuyauter

    Dans l'attente de vous lire

  2. #2
    Membre habitué
    bonjour voici un exemple tiré de mon bouquin

    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
     
    <?php
    $delim = md5(uniqid(rand()));
    //type du format MIME utilisé
    $head = "MIME-Version: 1.0\n";
    //type du contenu et frontière entre parties
    $head.= "Content-Type:multipart/mixed; boundary=\"$delim\"\n";
    $head.=" \n";
     
     
    //message à destination des logiciels ne lisant pas le type MIME
    $msg.= "ce message est au format MIME ... \n";
    $msg.= "\n";
     
    // premiere partie du message
    // on indique la frontiere
    $msg.= "--$delim\n";
    //on indique le contenu du message
    $msg.= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
    $msg.= "Content-Transfer-Encoding:8bit\n";
    $msg.= "\n";
    $msg.= "ceci est un exemple d'email avec un fichier joint"\n";
    $msg.= "\n";
    
    //seconde partie du message: le fichier joint
    $fichier = "image.gif";
    $attache = file_get_contents($fichier);
    $attache = chunk_split(base64_encode($attache));
    $msg.= "--$delim\n";
    $msg.= "Cpntent-Type: image/gif; name = \"$fichier\"\n";
    $msg.= "Content-Transfer-Encoding: base64\n";
    $msg.= "Content-Disposition: inline; filename=\"$fichier\"\n";
    $msg.= "\n";
    $msg.= $attache . "\n";
    $msg.= "\n";
    $msg.= "--$delim--";
    $dest = "adresse mail du destinataire";
    $exp = "adresse de l expediteur";
     
    mail($dest, "image", $msg, "Reply-to: $exp\nFrom: $exp\n".$head);
    ?>


    tu me diras si ca fonctionne merci

  3. #3
    Membre habitué
    Bonjour,

    C'est le premier script qui me donne un semblant de résultat !
    Je m'explique :

    - je ne reçois que 2 milimètres de l'image en clair
    et 2 milimètres brouillé
    - j'ai testé avec un jpg et la, rien du tout
    - il n'y a pas le trombonne indicant une pièce jointe

    A te lire

  4. #4
    Membre actif
    IL y a 1 erreurs (très simple à voir) dans ton script :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    $msg.= "Cpntent-Type: image/gif; name = \"$fichier\"\n";



    la première, il est écrit Cpntent-type au lieu de Content-type.

    Ensuite, pour un fichier jpeg, il faut bien evidemment remplacer le image/gif par un image/jpg

  5. #5
    Membre habitué
    Oui, j'avais corrigé le Content

    Pour les jpg, j'avais mis : image/jpeg

    Le problème reste le mème ( Image gif rognée ! )

  6. #6
    Membre habitué
    je crois que c'est image/jpg

  7. #7
    Membre habitué
    Bonjour,

    image/jpg ne va pas non plus

    Je cherche toujours la solution

  8. #8
    Membre habitué
    bonjour l'erreur est ici

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    $msg.= "ceci est un exemple d email avec un fichier joint\n";

    il y avait une double quote en trop

  9. #9
    Membre habitué
    Hélas !

    J'avais corrigé cette erreur

    Le soucis n'est pas la
    J'ai tout vérifié ligne par ligne

    Mème avec image/gif et une toute petite
    image je n'ai que le début de celle-ci !