Page 1 sur 1

caractères étrangés phpMailer

Posté : 05 oct. 2011, 16:32
par profilien
Bonjour à toute la communauté!

Je viens demander aide et conseil sur un problème qui me bloque depuis un moment.

J'ai réalisé un formulaire qui a pour but d'envoyer des emails au format html avec la librairie phpMailer.
Tout marche très bien sauf sur un point, les utilisateurs peuvent être un peu partout dans le monde et entrer leurs messages en chinois, russe ....
J'ai donc testé, le contenu du mail s'affiche bien correctement mais jamais l'objet du mail.

J'obtiens par exemple pour un objet de mail en chinois:
简报 au lieu de 简报

J'ai cherché dans plein de directions charset, encodage, decodage de la chaine .... :( sans succès

Voici l'extrait de code du fichier d'envoi en question


		$mail = new PHPmailer();					
						$mail->IsHTML(true);
						$mail->From=$mail_expediteur;
						$mail->FromName=$mail_expediteur;
						$mail->AddBCC($mail_destinataire); 
						$mail->AddReplyTo($mail_expediteur);
						$mail->AddEmbeddedImage("../../images/$image", "my-attach", "../../images/$image");
						$mail->Subject = $objet;
							
						$tailleImage=getimagesize("../../images/$image");
						$largeur=$tailleImage[0];
						$hauteur=$tailleImage[1];
							
						$message="<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">";

						$message.="<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />";
	
						$message.="<body bgcolor=\"#$couleur_fd\"><center><br/><br/>";
				
				
		
						$message.="</font></center></body></html>";	
						
						
						
						$mail->MsgHTML($message); 

Avez-vous des suggestions voir des solutions pour que je recentre mes recherches ?
Car la je sèche

Mille mercis par avance

Re: caractères étrangés phpMailer

Posté : 05 oct. 2011, 23:03
par frexios
Euh ?

Screen de ce que je voi :
Image

Re: caractères étrangés phpMailer

Posté : 06 oct. 2011, 09:55
par profilien
Mince, c'est en faite la retranscription de 简报 en caractère numériques décimaux.

c'est à dire :
&#31616;&#25253;
Dans un navigateur les caractères sont bien retranscrit ainsi que dans le corp du mail mais pas dans l'objet du mail!
Merci déjà de s'être penché sur mon problème.

Une solution?

Re: caractères étrangés phpMailer

Posté : 06 oct. 2011, 10:11
par xTG
Cela ne viendrait pas du webmail ou du logiciel de messagerie que tu utilises pour lire tes mails ?
As-tu essayé avec un autre outil ?

Re: caractères étrangés phpMailer

Posté : 06 oct. 2011, 10:18
par profilien
Merci de ta réponse.

Oui j'ai en effet essayer avec plusieurs logiciel mail et webmail => même résultat.
De plus il faut que cela marche avec le plus de client mail possible donc...

Re: caractères étrangés phpMailer

Posté : 06 oct. 2011, 15:50
par frexios
Essaye avec :
                $mail = new PHPmailer();                                       
                                                $mail->IsHTML(true);
                                                $mail->From=$mail_expediteur;
                                                $mail->FromName=$mail_expediteur;
                                                $mail->AddBCC($mail_destinataire);
                                                $mail->AddReplyTo($mail_expediteur);
                                                $mail->AddEmbeddedImage("../../images/$image", "my-attach", "../../images/$image");
                                                $mail->Subject = "=?utf-8?B?".base64_encode($objet)."?=";
                                                       
                                                $tailleImage=getimagesize("../../images/$image");
                                                $largeur=$tailleImage[0];
                                                $hauteur=$tailleImage[1];
                                                       
                                                $message="<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">";

                                                $message.="<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />";
       
                                                $message.="<body bgcolor=\"#$couleur_fd\"><center><br/><br/>";
                               
                               
               
                                                $message.="</font></center></body></html>";    
                                               
                                               
                                               
                                                $mail->MsgHTML($message);
On n'oubliant pas d'encoder la page en UTF8.

Re: caractères étrangés phpMailer

Posté : 06 oct. 2011, 16:12
par Mazarini
Eventuellement, tu peux regarder du coté de la fonction iconv() : http://www.php.net/manual/fr/function.iconv.php

Edit : la fonction iconv_get_encoding() permet de savoir dans quoi est codé la chaine. Reste le problème du codage à faire.

Re: caractères étrangés phpMailer

Posté : 06 oct. 2011, 16:45
par profilien
Merci beaucoup de ton aide frexios mais malheureusement pas de changement.

Merci, je vais me pencher sur le lien précédent

Re: caractères étrangés phpMailer

Posté : 06 oct. 2011, 22:54
par frexios
Tu as bien enregistré ton fichier au format UTF 8 ?

Re: caractères étrangés phpMailer

Posté : 07 oct. 2011, 10:01
par profilien
Oui le fichier est bien enregistré en UTF-8