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

Bibliothèques et frameworks PHP Discussion :

Envoi de mail avec la fonction PHP mail() avec une pièce jointe pdf


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 120
    Points : 64
    Points
    64
    Par défaut Envoi de mail avec la fonction PHP mail() avec une pièce jointe pdf
    bonjour,

    je n'arrive pas à envoyer un mail avec une pièce jointe pdf avec PHP mail()
    le mail s'envoie bien mais à l'arrivée j'ai un texte comme ceci dans le mail au lieu d'avoir une "vraie" pièce jointe que je peux ouvrir et lire

    ------=_parties_a075a261dabf78deaab71d93f13e7d8a
    Content-Type: application/pdf; name="price_inquiry"
    Content-Transfer-Encoding: base64
    Content-Disposition: attachment; filename="price_inquiry"

    JVBERi0xLjYNJeLjz9MNCjEwNzY4IDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9GaXJzdCA0
    L0xlbmd0aCA5Ni9OIDEvVHlwZS9PYmpTdG0+PnN0cmVhbQ0KaN4yVTBQsLHRd84vzStRMNf3zkwp
    jjYBigUpWBqCKSNjMzBtYgChTc3NjSEMU1OIQlMTE7DSWH3f1JTMRKf8imgDIN/M0EjB3NIoVj+k
    siBVPyAxPbXYzg4gwACYWBrODWVuZHN0cmVhbQ1lbmRvYmoNMTA3NjkgMCBvYmoNPDwvRmlsdGVy
    L0ZsYXRlRGVjb2RlL0ZpcnN0IDE5L0xlbmd0aCAzMjYvTiAzL1R5cGUvT2JqU3RtPj5zdHJlYW0N
    CmjerFJdT8IwFP0r/QWs964fW0KW6BSeiITuwYQQMkcDGF3JqAn+e9uuRNHxYPTx9Jye3nNuGaEk
    B8KAE0YFEQLJeJzctK2xRyIlF45fJKVprW7dCVCJPBzN9GZf35rTkjrIcz5CKUjGYJTlq2Red05O
    euVCH81b1+ijMy7Ni+nUoW60B4p6Q4ZeVhTJ/clOla2t56aBE5gFi6kCr+QYEQaURpR6ZUajy8TN
    6gwqWAcH6IdwEAKEM8QA8QyDCfRxq6q/KqPlvDON0naZzO8mSaVPduWPDrqz+5BqVvZB8qhXu3
    voici le code de ma fonction d'envoi de mail

    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
    function mail_attachement($to , $sujet , $message , $fichier , $typemime , $nom , $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/mixed;\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=\"iso-8859-1\"\n"; 
      $texte .= "Content-Transfer-Encoding: 7bit\n\n"; 
      $texte .= $message; 
      $texte .= "\n\n"; 
     
      //le fichier 
      $attachement = "------=$limite\n"; 
      $attachement .= "Content-Type: $typemime; name=\"$nom\"\n"; 
      $attachement .= "Content-Transfer-Encoding: base64\n"; 
      $attachement .= "Content-Disposition: attachment; filename=\"$nom\"\n\n"; 
     
      $fd = fopen( $fichier, "r" ); 
      $contenu = fread( $fd, filesize( $fichier ) ); 
      fclose( $fd ); 
      $attachement .= chunk_split(base64_encode($contenu)); 
     
      $attachement .= "\n\n\n------=$limite\n"; 
      return mail($to, $sujet, $texte.$attachement, "Reply-to: $reply\nFrom:
    $from\n".$mail_mime); 
    }

    et ensuite j'envoie mon mail simplement en faisant ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $to = "myemail@mondomaine.fr";
    $sujet = "Demande de prix";
    $message = "Bonjour, vous trouverez ci-joint une demande de prix :";
    $fichier = "ouverture_compte.pdf";
    $typemime = "application/pdf";
    $nom = "ouverture_compte";
    $reply = "myemail@mondomaine.fr";
    $from = "myemail@mondomaine.fr";
    mail_attachement($to , $sujet , $message , $fichier , $typemime , $nom , $reply , $from)
    j'ai fait plusieurs essais, je ne vois vraiment pas ou ça coince ...

    merci par avance pour votre aide
    http://www.medianeo.net

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    salut

    tu peux comparer l'output de ton script à mes propres classes (qui ne font pas tout)
    https://php.developpez.com/telecharg...-Mail-pour-PHP

    à priori c'est tes boundaries qui sont mal générées.
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 120
    Points : 64
    Points
    64
    Par défaut
    je suis en train de tester la classe

    comme je ne suis pas très aguerri à l'utilisation des classes aurais-tu un petit exemple

    bien sur j'ajoute la classe avec un require

    ensuite je fais comme ça, mais le script n'envoie pas d'email ...

    $from = mon adresse email;
    $to = adresse destinataire;
    $sujet = mon sujet;
    $message = mon message;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $email = new Mail();
    $email -> addAttachmentFromFile($_SERVER['DOCUMENT_ROOT']."erpnew/documents/fournisseur/test-devisX.pdf", "test-devisX.pdf" );
    $email -> addFROM($from);
    $email -> addSubject($sujet);
    $email -> addTO($to);
    $email -> addMessageText($message);
    $email -> send();
    est-ce que j'utilise mal la classe ?
    http://www.medianeo.net

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 120
    Points : 64
    Points
    64
    Par défaut
    bonjour,
    j'ai utilisé PHP Mailer qui a plus de documentation, et cela a résolu mon problème
    http://www.medianeo.net

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

Discussions similaires

  1. problème émetteur fonction PHP mail
    Par laurentSc dans le forum OVH
    Réponses: 2
    Dernier message: 03/09/2010, 15h10
  2. alias pour mail émetteur mail fonction PHP mail
    Par laurentSc dans le forum Langage
    Réponses: 5
    Dernier message: 22/08/2010, 20h06
  3. Réponses: 4
    Dernier message: 09/06/2010, 17h44
  4. [PHP 5.0] [Mail] Hébergeur au lieu de localhost avec la fonction mail()
    Par Whombat dans le forum Langage
    Réponses: 2
    Dernier message: 05/01/2009, 19h24
  5. fonction php mail() bloqué par le serveur
    Par Mathieu72 dans le forum Free
    Réponses: 3
    Dernier message: 02/08/2007, 13h11

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