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 :

Pièce jointe au mail manquante


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 164
    Points : 61
    Points
    61
    Par défaut Pièce jointe au mail manquante
    Bonjour à tous

    J'essais d'envoyer une pièce jointe à mon mail mais il est vide.

    J'ai repris la formule du cours mais pas de pièce jointe dans mon mail.
    Je ne veux pas de phpmailer ou autre juste ce que j'ai sous la main

    Le mail part bien mais pas de pièce jointe (PDF)
    et dans le corps il est illisible car encodé

    Je n'ai aucune erreur..

    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
    $destinataire = $email;
    $sujet = "Réception de votre carte QSL";
     
    $boundary = md5(uniqid(microtime(), TRUE));
     
    // Headers
    $headers = 'From: email expéditeur ici <email expéditeur ici>'."\r\n";
    $headers .= 'Mime-Version: 1.0'."\r\n";
    $headers .= 'Content-Type: multipart/mixed;boundary='.$boundary."\r\n";
    $headers .= "\r\n";
     
    // Texte
    $msg .= '--'.$boundary."\r\n";
    $msg .= 'Content-type:text/plain;charset=utf-8'."\r\n";
    $msg .= 'Content-transfer-encoding:8bit'."\r\n";
    $msg .= 'Un message avec une pièce jointe.'."\r\n";
    $msg = " bonjour ".$resultat['QRZ_BLU']."
    Voici votre carte QSL ci-joint.
     
    73's
     
    Bon DX 
     
    Le staff";
     
    $moi = str_replace(' ', '-', $resultat['moi']);
    $moi = strtolower($moi);
    $file_name = "chemin du PDF (il est bien valide car je le ressort en echo en test)";
    if (file_exists($file_name))
    {
    	$file_type = filetype($file_name);
    	$file_size = filesize($file_name);
     
    	$handle = fopen($file_name, 'r') or die('File '.$file_name.'can t be open');
    	$content = fread($handle, $file_size);
    	$content = chunk_split(base64_encode($content));
    	$f = fclose($handle);
     
    	$msg .= '--'.$boundary."\r\n";
    	$msg .= 'Content-type:'.$file_type.';name='.$file_name."\r\n";
    	$msg .= 'Content-transfer-encoding:base64'."\r\n";
    	$msg .= $content."\r\n";
    }
    mail($destinataire,$sujet,$msg,$headers);
    voilà ce que je recois dans le corps du message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Content-transfer-encoding:base64
    JVBERi0xLjQKMyAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJlbnQgMSAwIFIKL1Jlc291cmNlcyAy
    IDAgUgovR3JvdXAgPDwvVHlwZSAvR3JvdXAgL1MgL1RyYW5zcGFyZW5jeSAvQ1MgL0RldmljZVJH
    Qj4+Ci9Db250ZW50cyA0IDAgUj4+CmVuZG9iago0IDAgb2JqCjw8L0ZpbHRlciAvRmxhdGVEZWNv
    ZGUgL0xlbmd0aCAzMzk+PgpzdHJlYW0KeJyVkstOwzAQRWfdr5glCGnqtx12oBRRBKKVsmBbtYAC
    fUBJQXxy/4KbpFWlLoDIimds33vGHsXwTU+Jj/zVe2cfgmSWFYbNtOjE2omO7GwQ73i64P5Qc77i
    McRZEJcabZsZpyRzHHUUFVqt2Wujlcw02hgkKXZJS8qwHSTuuLbVXhbcv9JsvSjFxRMPCtgVFjBL
    lvbz+pmhNEZC4piSKMvFjE9IkyOmAeX0gKhIn3LxAsiBrFUHctSiTEu+pzc6B/OWNjQ9UP9EeDzY
    t4gxFXRdQzrYXRMae06PuEPVEWCSeNUC7mgC+5bWVAI1pw88Z4OdEnmJ1RZfNzh+D7vr/IhWsFcA
    M0ALxKpZbVCu7ls9RsjrIiXNcLLEed3PEtkU7jki0xDjDPGTXIeLKCU6tBe5aMA1fon5t9I5+vGK
    whVN/l8qJI+9/Zsn9H3ctB+kY6rSCmVuZHN0cmVhbQplbmRvYmoKMSAwIG9iago8PC9UeXBlIC9Q
    YWdlcwovS2lkcyBbMyAwIFIgXQovQ291bnQgMQovTWVkaWFCb3ggWzAgMCA1OTUuMjggODQxLjg5
    XQo+PgplbmRvYmoKNSAwIG9iago8PC9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMAovQmFzZUZv
    bnQgL01QREZBQStEZWphVnVTYW5zQ29uZGVuc2V
    Merci de votre attention

    Bonne journée voir vacances pour certains.

  2. #2
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Bonjour, je ne sais pas pourquoi ta religion t'interdit d'utiliser PHPMailer... Mais bon, puisque c'est ta question.

    En googlisant 30 secondes, j'ai trouvé ça, non testé, mais avec plein de commentaires pédagogiques. Je te laisse faire.
    Au demeurant, c'est peut-être déjà le script que tu as adapté, si c'est le cas, j'avoue ne pas avoir vérifié...

    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
    // On va dabors définir le fichier à envoyer et à qui
    $fichier = 'mon_fichier.pdf';
    $destinataire = 'mon_client@son_fai.fr';
    $sujet = 'Votre facture';
    // On créer un boundary unique
    $boundary = md5(uniqid(rand(), true));
    // On met les entêtes
    $entetes = 'Content-Type: multipart/mixed;'."n".' boundary="'.$boundary.'"';
    $body = 'This is a multi-part message in MIME format.'."n";
    $body .= '--'.$boundary."n";
    // ici, c'est la première partie, notre texte HTML (ou pas !)
    // Là, on met l'entête
    $body .= 'Content-Type: text/html; charset="UTF-8"'."n";
    // On peut aussi mettres les autres (voir à la fin)
    $body .= "n";
    // On remet un deuxième retour à la ligne pour dire que les entêtes sont finie, on peut afficher notre texte !
    $body .= 'Bonjour,
    Voici ci-joint la facture de Juillet 2008 a payer sous 2 heures';
    // Le texte est finie, on va faire un saut à la ligne
    $body .= "n";
    // Et on commence notre deuxième partie qui va contenir le PDF
    $body .= '--'.$boundary."n";
    // On lui dit (dans le Content-type) que c'est un fichier PDF
    $body .= 'Content-Type: application/pdf; name="'.$fichier.'"'."n";
    $body .= 'Content-Transfer-Encoding: base64'."n";
    $body .= 'Content-Disposition: attachment; filename="'.$fichier.'"'."n";
    // Les entêtes sont finies, on met un deuxième retour à la ligne
    $body .= "n";
    $source = file_get_contents($fichier);
    $source = base64_encode ($source);
    $source = chunk_split($source);
    $body .= $source;
    // On ferme la dernière partie :
    $body .= "n".'--'.$boundary.'--';
    // On envoi le mail :
    mail($destinataire, $sujet, $body, $entetes);
    ?>
    Par correction, la source du code :

    https://medium.com/sroze/php-envoyer...es-854a21ea27e
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 164
    Points : 61
    Points
    61
    Par défaut
    Bonjour

    J'ai résolu le problème en changeant la façon de faire .

    En fait j'afficher en PDF, ensuite libre à eux de l'enregistrer ou pas...

    Merci bien

    A bientôt

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

Discussions similaires

  1. Rattacher plusieurs pièces jointes à un mail
    Par Bruno51 dans le forum AIX
    Réponses: 1
    Dernier message: 06/05/2008, 18h38
  2. Envoi Pièce Jointe par Mail via 4D
    Par mxh77 dans le forum 4D
    Réponses: 6
    Dernier message: 25/09/2007, 18h05
  3. [VBA]Boucle et Pièces Jointes sur mailing list
    Par delcroixf dans le forum VBA Access
    Réponses: 7
    Dernier message: 23/03/2007, 10h11
  4. [Mail] Envoi du contenu d'une pièce jointe par mail
    Par nonhosonno dans le forum Langage
    Réponses: 2
    Dernier message: 28/02/2007, 13h42
  5. Insertion pièce jointe sur mail
    Par Michel DELAVAL dans le forum Access
    Réponses: 1
    Dernier message: 27/06/2006, 11h18

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