Intento usar PHPMailer para enviar el registro, la 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, todo el correo web (gmail, webmail.mydomain.org, emailaddress.domain.xx) está usando una codificación diferente.
¿Cómo puedo forzar el uso de la codificación UTF-8 para mostrar mi correo exactamente igual en todos los buzones?
Traté de convertir el ancho del encabezado del correo mb_convert_encoding()
, pero sin suerte.
Respuestas:
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
Debe ser reemplazado por:
Y se coloca después de la instanciación de la clase (después de
new
). ¡Las propiedades distinguen entre mayúsculas y minúsculas! Vea el documento PHPMailer para la lista y la ortografía exacta.Además, la codificación predeterminada de PHPMailer
8bit
puede ser problemática con los datos UTF-8. Para arreglar esto puedes hacer:Tenga en cuenta que
'quoted-printable'
probablemente también funcionaría en estos casos (y tal vez incluso'binary'
). Para obtener más detalles, puede leer RFC1341 - Campo de encabezado de codificación de transferencia de contenido .fuente
¡La línea
$mail -> CharSet = "UTF-8";
debe ser después$mail = new PHPMailer();
y sin espacios!prueba esto
fuente
Perdón por llegar tarde a la fiesta. Dependiendo de la configuración de su servidor, es posible que deba especificar el carácter estrictamente con letras minúsculas utf-8; de lo contrario, se ignorará. Pruebe esto si termina aquí buscando soluciones y ninguna de las respuestas anteriores ayuda:
debe reemplazarse con:
fuente
Yo trabajo de esta manera
http://php.net/manual/en/function.utf8-decode.php
fuente
fuente
Me estaba poniendo & oacute; en $ mail-> Asunto / w PHPMailer.
Entonces para mí la solución completa es:
Espero eso ayude.
fuente
Cuando ninguno de los anteriores funciona, y todavía se ve el correo
ª הודפסה ×•× ×©×œ
:fuente
@ $mail -> charSet = "UTF-8";
--- esta línea debe estar debajo
$mail = new PHPMailer(); line.
pff ..
Si es correcto. Debe colocarlo después de la instanciación del objeto.
fuente
La forma más sencilla y con la que te ayudaremos es establecer CharSet en UTF-8
fuente
Para evitar problemas de codificación de caracteres al enviar correos electrónicos utilizando la clase PHPMailer, podemos configurarlo para que lo envíe con codificación de caracteres UTF-8 utilizando el parámetro "CharSet", como podemos ver en el siguiente código Php:
fuente
$ mail -> charSet = "UTF-8"; --- esta línea debe estar debajo de $ mail = new PHPMailer (); línea.
pff ..
fuente