Bonsoir à tous,

Je suis sur le développement d'un envoie d'e-mail (sans passage par extraction db) et j'ai un problème qui fait que je m'arrache les cheveux.

Dans mon corps de mail tout est ok, cependant le sujet du mail fait de la résistance!

Par exemple: "notification d'adhésion" me donne "notification d'adhésion".

Comme précisé dans le nom du topic, j'utilise une classe php pour me simplifier la vie: phpmailer.

J'ai bien déclarer le charset en utf-8
$mail->Charset = 'UTF-8';


Mon fichier est encodé en utf-8 (sans bom) avec notepad++, l'entête de la page pour envoyer le mail est en utf-8 (même si je pense que ça n'a rien à voir). Même le navigateur détecte l'encodage en utf-8!

En fait, tout est en utf-8 et je ne vois pas d'où cela peut provenir.

Ici la portion de code pour envoyer le mail.


			require_once('./includes/phpmailer/class.phpmailer.php');
			$mail = new PHPMailer();
			$mail->SetLanguage('fr');
			$mail->Charset = 'UTF-8';
			$mail->SetFrom('email@from.com', 'A.C.R');
			$mail->AddAddress('emailTo@gmail.com');
			$mail->isHtml();
			$mail->Subject  = stripslashes($subject);
			$mail->Body     = $_POST['mailBody'];
			$mail->Send();


Quelqu'un aurait-il une idée d'où cela pourrait-il provenir? (A noter que oui, j'ai épluché tous les post que j'ai pu trouver, mais sans succès).

Cordialement,
Guillaume
Modérateur
Bonjour,

as-tu épluché le code de ta classe pour voir si il transformait a un moment ton texte en entités? Si non trouve dans quelles conditions et le tour est joué...
Bonjour,

Alors j'ai essayé la solution du "CharSet", cependant rien ne change. J'ai aussi regardé dans ma classe mais rien de spécial.

Une autre idée? Smiley smile

Cordialement.
Hello,

Pour savoir si la propriétés des instances de la classe PHPMailer est Charset ou CharSet, j'ai envie de dire RTFM: regardez la doc plutôt qu'essayer au pif.

Parmi les choses à vérifier:
1. Que contient $subject? Les caractères "notification d'adhésion" ou "notification d'adhésion"? Si tu as déjà une entité HTML dans ton texte, c'est sans doute la source du problème (je ne crois pas que le format des sujets de mail accepte les entités HTML).
2. Tu as vérifié la source du mail envoyé? Pas le DOM restitué par un webmail, ou le rendu de ton client mail desktop, mais bien le code source de l'email (pour rappel, les emails ne sont pas formatés en HTML, même s'ils peuvent avoir un contenu HTML, et il y a des règles d'échappement spécifiques pour les caractères non-ASCII). Ça ressemble à quoi pour ton sujet?
WebD a écrit :
Slaut,
Essai avec:

$mail->CharSet = 'utf-8';

Avec un s majuscule.


PHP est insensible à la casse pour les noms de fonctions, classes et méthodes.
Modifié par jb_gfx (10 Mar 2012 - 13:12)