Cant send email with correct characters with PHPMailer
32,166
Solution 1
Double check Your PHP code is also in UTF-8 encoding.
Uncomment the line //$mail->CharSet="UTF-8";
and move it idealy right after the $mail = new PHPMailer(true);
, so the code would look like:
// ...
$mail = new PHPMailer(true);
$mail->CharSet = "UTF-8";
// ...
In Your code it is called after the $mail->Send();
thus the charset setting did not take in count...
Solution 2
Yes, right after the "new PHPMailer(true);". I had the same problem with:
$mail = new PHPMailer(true);
try {
$mail->setLanguage('fr', 'inc'.DIRECTORY_SEPARATOR.'PHPMailer'…);
$mail->CharSet = 'UTF-8';
and changing to:
$mail = new PHPMailer(true);
$mail->CharSet = 'UTF-8';
try {
$mail->setLanguage('fr', 'inc'.DIRECTORY_SEPARATOR.'PHPMailer'…);
solved the accents problem.
Author by
darkman
Updated on July 09, 2022Comments
-
darkman almost 2 years
I'm trying to send a e-mail with the PHPmailer class, but the html i send, is empty, or the characters are unconfigured, and without accents.
<?php header("Content-Type: text/html; charset=ISO-8859-1", true); require_once('class.phpmailer.php'); include "config.php"; $nome = trim($_POST['nome']); $email = trim($_POST['Imail']); $usuario = trim($_POST['usuario']); $senha = trim($_POST['senha']); $mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch $mail->IsSMTP(); // telling the class to use SMTP try { $mail->AddAddress($email, $nome); $mail->SetFrom('[email protected]', 'Conectfarma'); $mail->AddReplyTo('[email protected]', 'Conectarma'); $subject = 'Guia Rápido de Interações Medicamentosas'; $sendsubject= "=?utf-8?b?".base64_encode($subject)."?="; $mail->Subject = $sendsubject; $mensagem = "<!DOCTYPE html> <html> <body> Bem vindo ao Guia Rápido de Interações Medicamentosas em Neurologia e Psiquiatria Seu Login e Senha para acesso ao aplicativo são:\n Login:" .$nome. "\n, Senha : " .$senha. "\nAtenciosamente, Conectfarma Publicações Científicas </body> </html>"; $mail->Body = $mensagem; //$mail->CreateBody($mensagem); $mail->IsHTML(true); $mail->Send(); //$mail->CharSet="UTF-8"; echo "<!DOCTYPE html> <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'> <title>Confirmação</title> </head> <body> Não vai maçã. </body> </html> "; } catch (phpmailerException $e) { echo $e->errorMessage(); //Pretty error messages from PHPMailer } catch (Exception $e) { echo $e->getMessage(); //Boring error messages from anything else! } } } } ?>
I jumped the SMTP configuration because its working properly.