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.
Yo trabajo de esta manera
$mail->FromName = utf8_decode($_POST[''name'']);
@ $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";