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 :

[PhpMailer] Encodage des accents


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut [PhpMailer] Encodage des accents
    Bonjour j'utilise depuis longtemps PhpMailer mais je viens de tomber sur un problème que je n'ai jamais rencontré, mes accents contenu dans $message ne passent pas et je recois le carré noir avec le point d'interrogation dessus. Je consulte mes mails sous thunderbird

    Voici le code de mon fichier qui génére le mail. Le fichier et enregistré en ANSI
    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
    48
     
    <?
    include "phpmailer/class.phpmailer.php";
     
    $auteur = $_POST['nom'].' '.$_POST['prenom'];
    $email = $_POST['email'];
    $adresse = $_POST['adresse'];
    $code_postal = $_POST["code_postal"];
    $ville = $_POST['ville'];
    $telephone = $_POST['telephone'];
    $message = stripslashes($_POST['message']);
    $message = str_replace("\n","<br />",$message);
     
    $msg_body =  "<html><head><meta http-equiv='Content-Type' content='text/html; charset='ISO-8859-1' />
                      <title>Demande d'informations</title></head><body>
                      <b>Nom : </b>$auteur<br />
                      <b>Mail : </b>$email<br />";
     
    if($_POST['adresse'] != '')                  
      $msg_body .= " <b>Adresse : </b>$adresse<br />$code_postal $ville<br>";
     
    $msg_body .= "<br><b>Demande : </b>$message
                  </body>
                  </html>";
     
    $mail = new PHPmailer();
    $mail->IsHTML(true); 
    $mail->CharSet = 'UTF-8';   
    $mail->From='no-reply@xxx.com';
    $mail->FromName="xxx";
    $mail->AddAddress('benoit.denis@xxx.fr');
    //$mail->AddBCC('benoit.denis@xxx.fr');
    $mail->AddReplyTo(stripslashes($email));    
    $mail->Subject="[xxx] Demande d'informations";   
    $mail->Body=$msg_body;
     
    if(!$mail->Send()){ //Teste si le return code est ok.
      echo $mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7)
    }
     
    unlink($mail);
    ?>
     
    <!-- on affiche une alert confirmant l'envoi -->
    <script language="javascript">
      alert("Votre message est transmis.\nNous vous contacterons dans les meilleurs delais");  
      window.location.replace("xxx.php");
    </script>
    Merci d'avance de votre aide

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    dans l'entête html tu as mis "ISO-8859-1", il faut mettre "UTF-8" partout

  3. #3
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    J'ai essayé tout a l'heure en mettant UTF-8 en en-tête et en enregistrant mon fichier en UTF-8 mais meme probleme

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    Pas encore très au point en PHP, je ne connais pas la fonction phpmail(), mais si je comprend bien tu envoies un mail en HTML.

    Est ce que tu as essayé de remplacer les caractères par le code HTML avant l'envoi? (&egrave, &eacute, etc..). Ça pourrait toujours te dépanner.

  5. #5
    Membre éclairé Avatar de nsanabi
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Points : 678
    Points
    678
    Par défaut
    la page qui fait appel à ton code (celle qui envoi le $_POST['message']) doit etre encodé en utf8

    sinon essai d'ajouter cette ligne comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $message = stripslashes($_POST['message']);
    $message = str_replace("\n","<br />",$message);
    //utiliser la fonction qui convertit de iso-8859-1 en utf-8
    $message = utf8_encode($message);

  6. #6
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    J'avais essayé la fonction utf8_encode dès le début, sans résultat...

    La par acquis de conscience, car comme toi ca me parait évident, je l'ai retesté, ca marche !

    Mystère et bubble gum...

  7. #7
    Membre éclairé Avatar de nsanabi
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Points : 678
    Points
    678
    Par défaut
    mieux vaut tard que jamais.
    si ton problème est résolu, merci de l'indiquer
    bon courage

  8. #8
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    C'est dejà indiqué

    Oui c'est sur l'essentiel est que ca marche mais j'aime pas quand je comprends pas

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

Discussions similaires

  1. [XML] [XSLT] Problème d'encodage des accents
    Par missllyss dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 12/06/2008, 16h01
  2. [AJAX] Recherche : Fonction open source pour l'encodage des accents ?
    Par polothentik dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/04/2008, 11h09
  3. [XML][Flash] Problème d'encodage des accents
    Par JoN28fr dans le forum Flash
    Réponses: 20
    Dernier message: 11/10/2006, 21h16
  4. [XML][Flash] Problème d'encodage des accents
    Par JoN28fr dans le forum XML/XSL et SOAP
    Réponses: 9
    Dernier message: 06/10/2006, 16h45
  5. [XML] encodage des accents
    Par matonfire dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 05/05/2004, 15h48

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