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 :

Mauvais encodage d'en-tête d'e-mail [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre actif
    Homme Profil pro
    Chef de projet informatique
    Inscrit en
    Janvier 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Chef de projet informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 132
    Points : 205
    Points
    205
    Par défaut Mauvais encodage d'en-tête d'e-mail
    Bonjour,

    J'ai un formulaire de contact sur mon site web dont le handler a été écrit par moi, après de longues séances de recherche sur le web. La validation du formulaire par un visiteur du site se traduit par l'envoi d'un courriel à mon adresse.

    Le handler fonctionne correctement depuis des mois mais je constate dans plusieurs clients mails que le courriel envoyé présente un problème d'encodage, uniquement dans le nom de l'expéditeur ou dans le sujet lorsqu'il y a un caractère accentué. J'ai par exemple "Hervé" au lieu de "Hervé", ce qui traduit du multibyte interprété comme du single byte, a priori UTF-8 interprété comme ANSI quelque chose.

    Voici le bout de code où je remplis les en-têtes (toutes les variables inconnues en parties droites d'égalités sont de simples copies de valeurs dans $_POST):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	if (empty($visitor_email)) {
    		$user_identification = '"' . $visitor_name . '"';
    		$to = $contact_form_email_addr;
    		$sender = $user_identification . '<' . $contact_form_email_addr . '>';
    		$headers = array("From"=>$sender, "Subject"=>$subject,"To"=>$to, "Content-Transfer-Encoding"=>"quoted-printable", "Content-Type"=>'text/plain; charset="UTF-8"');
    	} else {
    		$user_identification = '"' . $visitor_name . '" <' . $visitor_email . '>';
    		$to = $contact_form_email_addr . "," . $visitor_email;
    		$headers = array("From"=>$user_identification, "Subject"=>$subject,"Reply-To"=>$user_identification, "To"=>$to, "Content-Transfer-Encoding"=>"quoted-printable", "Content-Type"=>'text/plain; charset="UTF-8"');
    	}
    Comme toutes mes pages web et tous mes fichiers (qui peuvent l'être) sont en UTF-8, j'imagine que $sender contient une chaîne en Unicode. Soit je précise que les en-têtes sont en Unicode, soit je convertis vers l'encodage pertinent (que je ne connais pas encore). Y a-t-il moyen de faire l'un ou l'autre ?

    Merci.

  2. #2
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    Slt topdawg,

    Tu as sans doute résolu ton souci entre-temps.

    Si ce n'est pas le cas, ce que j'ai écrit sur un autre post de ce forum t'aidera peut-être.

    ++

  3. #3
    Membre actif
    Homme Profil pro
    Chef de projet informatique
    Inscrit en
    Janvier 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Chef de projet informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 132
    Points : 205
    Points
    205
    Par défaut
    Merci bien StephBretagne.

    Je n'avais pas encore résolu le problème. Je viens d'appliquer ta solution et elle fonctionne parfaitement dans tous les lecteurs mails et webmails que j'ai pu tester. Merci.

  4. #4
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    De rien topdawg

    Je suis contente d'avoir pû t'aider !

    Pour une fois que c'est moi qui peut aider les autres... j'ai beaucoup reçu de ce forum.

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

Discussions similaires

  1. [JAVAMAIL] Problèmes d'encodage lors de la lecture de mail
    Par lookout dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 17/03/2009, 16h40
  2. [MySQL] Mauvais encodage MySQL
    Par blueice dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/08/2008, 12h39
  3. [MySQL] mauvais encodage, lorsque modifié dans la base
    Par __fabrice dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/02/2007, 15h19
  4. [Mail] Mise en place d'un encodage correct à l'envoi d'un mail
    Par SavageMessiah dans le forum Langage
    Réponses: 2
    Dernier message: 02/11/2006, 01h21
  5. Encodage des pièces jointes d'un mail : toujours base64 ?
    Par Michaël dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 15/10/2005, 12h34

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