working utf8_decode not charset acentos php phpmailer

utf8_decode - Problemas de codificación de caracteres de PHPMailer



phpmailer iso 8859 1 (11)

$ mail -> charSet = "UTF-8"; --- esta línea debe estar debajo de $ mail = new PHPMailer (); línea.

pff ..

Intento usar PHPMailer para enviar registro, activación. etc. correo a los usuarios:

require("class.phpmailer.php"); $mail -> charSet = "UTF-8"; $mail = new PHPMailer(); $mail->IsSMTP(); $mail->Host = "smtp.mydomain.org"; $mail->From = "[email protected]"; $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("[email protected]"); $mail->AddBCC(''[email protected]'', ''firstadd''); $mail->Subject = $sub; $mail->Body = $message; $mail->WordWrap = 50; if(!$mail->Send()) { echo ''Message was not sent.''; echo ''Mailer error: '' . $mail->ErrorInfo; }

El $message contiene caracteres latinos. Desafortunadamente, todos los correos web (gmail, webmail.mydomain.org, emailaddress.domain.xx) usan códigos diferentes.

¿Cómo puedo forzar el uso de la codificación UTF-8 para mostrar mi correo exactamente igual en todos los buzones?

Intento convertir el ancho del encabezado del correo mb_convert_encoding() , pero sin suerte.


La forma más sencilla y te ayudará con configurar CharSet para UTF-8

$mail->CharSet = "UTF-8"


Para evitar problemas de codificación de caracteres en el envío de correos electrónicos utilizando la clase PHPMailer podemos configurarlo para enviarlo con codificación de caracteres UTF-8 utilizando el parámetro "CharSet", como podemos ver en el siguiente código Php:

$mail = new PHPMailer(); $mail->From = ''[email protected]''; $mail->FromName = ''Mi nombre''; $mail->AddAddress(''[email protected]''); $mail->Subject = ''Prueba''; $mail->Body = ''''; $mail->IsHTML(true); // Active condition utf-8 $mail->CharSet = ''UTF-8''; // Send mail $mail->Send();


Perdón por llegar tarde a la fiesta. Según la configuración de su servidor, es posible que se le solicite que especifique el carácter estrictamente con letras minúsculas utf-8; de lo contrario, se ignorará. Intente esto si termina buscando soluciones y ninguna de las respuestas anteriores ayuda:

$mail->CharSet = "UTF-8";

debe ser reemplazado por:

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


Si está 100% seguro de que $ message contiene ISO-8859-1, puede usar utf8_encode como dice David. De lo contrario, use mb_detect_encoding y mb_convert_encoding en $ message.

También tenga en cuenta que

$mail -> charSet = "UTF-8";

Debería ser reemplazado por:

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

Y colocado después de la instanciación de la clase (después de la "nueva"). Las propiedades son sensibles a mayúsculas y minúsculas Consulte el documento de PHPMailer para ver la lista y la ortografía exacta.


Si su mensaje usa Latin1, puede usar utf8_encode Works para mí, de todos modos.



@ $mail -> charSet = "UTF-8";

--- esta línea debe estar bajo

$mail = new PHPMailer(); line.

pff ..

Si es correcto. Tienes que colocarlo después de la instanciación de objetos.


$mail -> CharSet = "UTF-8"; $mail = new PHPMailer();

línea $mail -> CharSet = "UTF-8"; debe estar después de $mail = new PHPMailer(); y sin espacios!

prueba esto

$mail = new PHPMailer(); $mail->CharSet = "UTF-8";


$mail = new PHPMailer(); $mail -> CharSet = "UTF-8";


$mail = new PHPMailer(); $mail->CharSet = "UTF-8"; $mail->Encoding = "16bit";