267 votes

Problèmes de codage des caractères de PHPMailer

J'essaie d'utiliser PHPMailer pour envoyer des messages d'enregistrement, d'activation, etc. aux utilisateurs :

require("class.phpmailer.php");
$mail -> charSet = "UTF-8";
$mail = new PHPMailer();
$mail->IsSMTP();  
$mail->Host     = "smtp.mydomain.org";  
$mail->From     = "name@mydomain.org";
$mail->SMTPAuth = true; 
$mail->Username ="username"; 
$mail->Password="passw"; 
//$mail->FromName = $header;
$mail->FromName = mb_convert_encoding($header, "UTF-8", "auto");
$mail->AddAddress($emladd);
$mail->AddAddress("mytest@gmail.com");
$mail->AddBCC('mytest2@mydomain.org', 'firstadd');
$mail->Subject  = $sub;
$mail->Body = $message;
$mail->WordWrap = 50;  
if(!$mail->Send()) {  
   echo 'Message was not sent.';  
   echo 'Mailer error: ' . $mail->ErrorInfo;  
}

The $message contient des caractères latins. Malheureusement, tous les webmails (gmail, webmail.mydomain.org, emailaddress.domain.xx) utilisent un codage différent.

Comment puis-je forcer l'utilisation du codage UTF-8 pour que mon courrier s'affiche exactement de la même manière sur toutes les boîtes aux lettres ?

J'ai essayé de convertir la largeur de l'en-tête du courrier mb_convert_encoding() mais sans succès.

0 votes

La capitalisation de CharSet ci-dessus a été modifiée par bovender.

0voto

Pour éviter les problèmes d'encodage des caractères lors de l'envoi d'emails à l'aide de la classe PHPMailer, nous pouvons la configurer pour l'envoyer avec l'encodage des caractères UTF-8 en utilisant le paramètre "CharSet", comme nous pouvons le voir dans le code Php suivant :

$mail = new PHPMailer();
$mail->From = 'midireccion@email.com';
$mail->FromName = 'Mi nombre';
$mail->AddAddress('emaildestino@email.com');
$mail->Subject = 'Prueba';
$mail->Body = '';
$mail->IsHTML(true);

// Active condition utf-8
$mail->CharSet = 'UTF-8';

// Send mail
$mail->Send();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X