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 d'un e-mail avec piece jointe


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 264
    Points : 141
    Points
    141
    Par défaut [Mail] Envoi d'un e-mail avec piece jointe
    Bonjour,

    Avez-vous déja envoyé un fichier RTF ?
    Le code suivant ne semble pas foncitonner...

    [function_file]: failed to open stream: No such file or directory


    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
     
      function mail_attachement($to , $sujet , $message , $fichier , $reply , $from)
      {
        $limite = "_parties_".md5(uniqid (rand()));
     
        $mail_mime = "Date: ".date("l j F Y, G:i")."\n"; 
        $mail_mime .= "MIME-Version: 1.0\n"; 
        $mail_mime .= "Content-Type: multipart/alternative;\n"; 
        $mail_mime .= " boundary=\"----=$limite\"\n\n"; 
     
        //Le message en texte simple pour les navigateurs qui n'acceptent pas le HTML 
        $texte = "This is a multi-part message in MIME format.\n"; 
        $texte .= "Ceci est un message est au format MIME.\n"; 
        $texte .= "------=$limite\n"; 
        $texte .= "Content-Type: text/plain; charset=\"US-ASCII\"\n"; 
        $texte .= "Content-Transfer-Encoding: 7bit\n\n"; 
        $texte .= $message; 
        $texte .= "\n\n"; 
     
        //lefichier 
        $attachement = "------=$limite\n"; 
        $attachement .= "Content-Type: application/rtf; name=\"$fichier\"\n";
        $attachement .= "Content-Transfer-Encoding:base64\n"; 
        $attachement .= chunk_split(base64_encode(implode("", file($fichier)))); 
        $attachement .= "\n\n\n------=$limite\n"; 
        return mail($to, $sujet, $texte.$attachement, "Reply-to: $reply\nFrom: $from\n".$mail_mime); 
     
      }
       $email_dst  = "<a href="mailto:webmaster@domaine.com">webmaster@domaine.com</a>";
       $subject    = $_POST["_subject"];
       $message    = $_POST["_message"];
       $filename   = $_POST["_filename"];
       $email_exp  = $_POST["_mail_exp"];
       if (isset($_POST["_mail_exp"])) {
         mail_attachement($email_dst, $subject, $message, $filename, $email_exp, $email_exp);
       }
    ?>
    <form action="mail_fichierattache.php" method="post">
     <font size="2">
      <br />Email expéditeur : <input type="text" name="_mail_exp">
      <br />Le fichier (Format RTF) : <input type="file" name="_filename">
      <br />Sujet : <input type="text" name="_subject">
      <br />Message :
      <br /><textarea name="_message"></textarea>
      <br /><input type="submit">
     </font>
    </form>
    Merci

  2. #2
    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
    Bonjour,

    L'upload d'un fichier se gère grâce à $_FILES. Je t'invite à lire la doc à ce sujet pour bien tout maitriser :
    http://us3.php.net/manual/fr/features.file-upload.php

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 264
    Points : 141
    Points
    141
    Par défaut
    Merci mais il ne s'agit pas de uploader un fichier vers un serveur mais de joindre une pièce-jointe, le format doc étant non sécurisé, c'est donc au format rtf que celui-ci devra être joint...

  4. #4
    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
    La piece-jointe (peu importe son format, essaie avec un .gif tu auras la même erreur) vient d'où ? Il faut bien qu'elle soit uploadée sur ton serveur pour que ton script php puisse la joindre au mail.

    Quand on utilise un input type="file", comme tu le fais, il faut utiliser $_FILES pour récupérer les informations relatives au fichier (nom, erreurs, chemin temporaire, ...) Voir le lien que je t'ai donné pour de plus amples informations.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 264
    Points : 141
    Points
    141
    Par défaut
    Le(s) fichiers ne se trouve pas sur le serveur, il s'agit d'un dépot de cv en ligne via une adresse mail.

  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
    Je sais bien (enfin, j'imagine bien). Mais justement, ton serveur, là où tourne ton script php, doit posséder localement le fichier de l'utilisateur pour pouvoir le joindre à un mail.
    Donc tu dois gérer un upload.

    1) L'utilisateur upload son cv au format .trucmuche sur ton serveur,
    2) Ton script fait les vérifications qui s'imposent (bon format, ...),
    3) Ton script envoie le mail avec le fichier en attachement.

    Donc tu dois gérer l'upload, donc tu dois lire le lien que je t'ai donné

    Ou alors j'ai pas tout compris ton besoin...

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 264
    Points : 141
    Points
    141
    Par défaut
    pas très sécurisé tout ça..

  8. #8
    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
    mais encore ? Qu'est ce qui n'est pas sécurisé ? Où est la faille ?

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 264
    Points : 141
    Points
    141
    Par défaut
    ...Existe-il alors une fonction qui envoie directement le fichier vers une adresse email, exemple : job@domaine.com (Cv au format RTF) Merci.

  10. #10
    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
    Oui:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="mailto:job@domaine.com">job@domaine.com</a>';

  11. #11
    Membre actif
    Homme Profil pro
    Responsable d'une MOE bancaire
    Inscrit en
    Juillet 2003
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable d'une MOE bancaire

    Informations forums :
    Inscription : Juillet 2003
    Messages : 261
    Points : 226
    Points
    226
    Par défaut
    si tu veux que l'utilisateur envoi le mail de sa propre boite alors Mr N. t'a répondu un lien simple suffira.

    mais si tu veux utiliser un formulaire à partir duquel ton fichier joint sera envoyé, dans ce cas là encore Mr N. t'a répondu: t'es obligé d'uploader d'abord le fichier joint sur ton serveur... avec php, c'est l'unique solution!!!

    pas très sécurisé tout ça..
    si tu ne peux pas prouver la faille, ce genre de commentaire ne sert à rien

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 264
    Points : 141
    Points
    141
    Par défaut
    mailto ouvre outlook, certains poste n'ont pas de boite mail, non sérieux c'est en passant par un formulaire que j'espérais réaliser cela, savez vous si en javascript c'est possible ?

    merci

  13. #13
    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
    Non ce n'est pas possible en javascript car ce dernier n'a pas accès au filesystem.
    La solution la plus rapide est de créer un formulaire, et d'uploader ton fichier sur le serveur afin d'envoyer le mail par la suite. Elle est où la faille de sécurité ?

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 264
    Points : 141
    Points
    141
    Par défaut
    Merci pour vos réponses.

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

Discussions similaires

  1. Envoi d'un mail avec piece jointe
    Par L_latifa dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 16/06/2006, 17h01
  2. [oracle 9] Envoi de mail avec piece jointe
    Par tipote69 dans le forum Oracle
    Réponses: 2
    Dernier message: 01/03/2006, 15h01
  3. probleme d'envoi de mail avec pieces jointes
    Par tmryuga dans le forum ASP
    Réponses: 9
    Dernier message: 23/02/2006, 14h56
  4. Réponses: 5
    Dernier message: 12/12/2005, 08h52
  5. envoi mail avec piece jointe fichier excel
    Par flogreg dans le forum ASP
    Réponses: 12
    Dernier message: 20/12/2004, 16h02

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