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] Problème d'encodage avec phpmailer


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 15
    Points : 7
    Points
    7
    Par défaut [Mail] Problème d'encodage avec phpmailer
    Bonjour,

    J'utilise la classe phpmailer pour envoyer un email avec une pièce jointe.
    Pas de problème pour l'envoie du mail mais quand j'ouvre ma pièce jointe (qui est un fichier XML), seul le début de mon fichier est correct, tout le reste est comme encrypté (du style : UU#ÂôFWf—6SãÄFWf—6U–V6SäUU#ÂôFWf—6U–V6SãÂõ–VÖVçCãÂõ).

    J'ai vu que dans les paramètres de la fonction AddAttachment qui permet de mettre une pièce jointe, il y a un encryptage par défaut en base64 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
          function AddAttachment($path, $name = "", $encoding = "base64", $type = "application/octet-stream" )
    Apparament les seules valeurs possibles pour encoding sont : "8bit","7bit", "binary", "base64", and "quoted-printable".

    Vaudrait-il mieux que j'en mette un autre?

    Merci par avance pour votre aide

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 116
    Points : 112
    Points
    112
    Par défaut
    Citation Envoyé par catmary
    Bonjour,

    J'utilise la classe phpmailer pour envoyer un email avec une pièce jointe.
    Pas de problème pour l'envoie du mail mais quand j'ouvre ma pièce jointe (qui est un fichier XML), seul le début de mon fichier est correct, tout le reste est comme encrypté (du style : UU#ÂôFWf—6SãÄFWf—6U–V6SäUU#ÂôFWf—6U–V6SãÂõ–VÖVçCãÂõ).

    J'ai vu que dans les paramètres de la fonction AddAttachment qui permet de mettre une pièce jointe, il y a un encryptage par défaut en base64 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
          function AddAttachment($path, $name = "", $encoding = "base64", $type = "application/octet-stream" )
    Apparament les seules valeurs possibles pour encoding sont : "8bit","7bit", "binary", "base64", and "quoted-printable".

    Vaudrait-il mieux que j'en mette un autre?

    Merci par avance pour votre aide

    Bonjour,

    j'utilise aussi la classe phpmailer qui fonctionne bien pour moi,
    l'encodage en base64 pour un fichier xml ne me pose pas de pb, c'est plûtot le type mime qui me dérange :

    $type = "application/octet-stream"
    essayez avec ce type mime :

    $type = "text/xml"
    et dites nous si ca change quelque chose à votrer problème,

    Fred

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Non, toujours pareil...

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Tu utilises Outlook Express ?

    En tout cas je vois vraiment pas d'où ça vient, j'ai essayé tous les type d'encodage, mais toujours à partir du même caractère, c'est codé, alors qu'avant ce caractère (qui est un "r"), c'est normal...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 116
    Points : 112
    Points
    112
    Par défaut
    Tu utilises Outlook Express ?
    Non, Thunderbird, mais je teste systematiquement sur plusieurs mailers.

    Peux tu nous donner les quelques lignes de code qui précèdent l'attachement du fichier pour que l'on puisse t'aider un peu plus ?

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Voilà comment j'utilise la fonction :
    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
     
    require("include/mail.inc.php");
     
    // Création d'un nouveau mail
    $mail = new MyMailer;
     
    // Sujet du message
    $mail->Subject = "EBPMsg :Commandes Client";
     
    // Le message
    $mail->Body    = "ATTENTION : Le contenu de ce message est destiné au logiciel EBP PDV
    --------------------------------------------------------------------------------------------
    Text:";
     
    // Pièce jointe (nom sur le disque,nom que verront les destinataires)
    $mail->AddAttachment("export/commandes.xml", "Pieces.Xml");  
     
    // Le destinataire
    $mail->AddAddress($dest,$nom);
     
    // On peut aussi ajouter des destinataires 'cc' et des 'cci' avec $mail->AddCc et $mail->AddBcc
     
    // Envoie du mail
    if(!$mail->Send()){
       echo "Echec de l'envoi du mail";
    }
     
    $mail->SmtpClose();
     
    unset($mail);

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 116
    Points : 112
    Points
    112
    Par défaut
    bon, dans ton code rien ne me choque, as-tu essayé comme je t'avais dit :

    $mail->AddAttachment("export/commandes.xml", "Pieces.Xml", "base64", "text/xml");
    Sinon, d'autres pistes :

    essayer de remplacer le fichier pas un autre fichier xml au contenu différent :
    - Est ce que le le fichier est bien restitué ? Si non, est-ce a partir du même caractère ? Est-ce à la même longueur exactement ?

    - Quel est l'encodage du fichier xml ? utf-8 ? ansi ?

    Sinon, tu peux aussi essayer de charger le contenu du fichier xml dans une variable pour voir ce qu'elle contient, et si le résultat est correct envoyer la pièce jointe de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $fichier_xml = file_get_contents("export/commandes.xml");
     
    $mail->AddStringAttachment  ($fichier_xml, "Pieces.Xml","base64", "text/xml");
    je n'ai pas testé, ce n'est qu'une suggestion,

    bon courage,

    Fred

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Merci beaucoup pour ton aide...

    J'ai essayé ta dernière solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $fichier_xml = file_get_contents("export/commandes.xml");
     
    $mail->AddStringAttachment  ($fichier_xml, "Pieces.Xml","base64", "text/xml");
    mais ça n'a rien changé

    Au début j'envoyais mon fichier xml en le mettant dans le corps de l'email et là je n'avais aucun problème, mais pour le logiciel de gestion qui doit le recevoir, il lui faut en pièce jointe...

    Pour l'encodage, c'est en "Windows-1252"

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Sayez j'ai enfin trouvé, cela venait de l'encodage de mon fichier xml, il était en windows... et fallait qu'il soit en iso.

    Merci beaucoup pour ton aide !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/03/2007, 22h33
  2. Réponses: 3
    Dernier message: 24/10/2006, 11h05
  3. Problème d'encodage avec MyODBC
    Par stack dans le forum Access
    Réponses: 2
    Dernier message: 17/10/2006, 12h11
  4. [Mail] problème de header avec la fonction mail
    Par Jim_Nastiq dans le forum Langage
    Réponses: 5
    Dernier message: 26/07/2006, 15h21
  5. Problème d'encodage avec Python
    Par tse_tilky_moje_imja dans le forum Général Python
    Réponses: 2
    Dernier message: 22/02/2006, 14h36

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