[PHP] Error caracteres extraños en mail

willy_chaos

Hola a todos, pues estoy haciendo un programita de incidencias en php.

Envia correctamente y todo perfecto... se recibe correctamente.

El problema esta en cuando lo recibo, si lo leo desde Thunderbird / Outlook o otro gestor de correo se me ven las palabras que llevan accentos mal.

Si lo abro desde el correo web Gmail, se ve correctamente, pero me molesta que en el gestor de correo se vea mal.

spoiler

Aquí teneis el codigo por si lo necesitáis. Alguna idea de como solucionarlo.

r2d2rigo

Estas enviando el mail como codigo HTML, asi que o utilizas HTML entities en lugar de caracteres acentuados o le cambias el $CharSet a UTF8.

2 respuestas
shako

como dice #2 estas mostrando codigo html, otra cosa que puedes hacer, es buscar palabra por palabra los á é etc... creo q funcionaría

1 respuesta
willy_chaos

#2 y #3 Pero el charset como podeis ver esta en UTF-8 (si os fijais en la variable $msg hay HTML y dentro hay el charset a UTF-8).

Y el tema de cambiar las palabras accentuadas por html_entities, en los mensajes prefabricados si, pero el msg que es lo que envio, es lo que han rellenado los usuarios en el formulario.

MrTurbo

Prueba a hacer un utf8_decode() de todas las cadenas que vayas a imprimir

    print utf8_decode("cadena");

Quizás el outlook / thunderbird no te estén pillando correctamente los headers.

Saludos

1 respuesta
willy_chaos

#5 gracias, era eso.

adr1ana_cs

#1 Como ya te han dicho por ahí, al ser html o cambias a utf-8 o te va a tocar á para los acentos en vocales y Ñ para las Ñ

Usuarios habituales

  • adr1ana_cs
  • willy_chaos
  • MrTurbo
  • shako
  • r2d2rigo