LOGIN
Reg&iuacute;strateLinksForosPrivadosPrivadosContacta
 
FOROS > Programación
   Evitar los caracteres inválidos del header de los emails en ...
02/10/2006    16:27


Registrado: 14/04/2004
Nº mensajes: 491

  Living QuotePrivado  
 
He comprobado al enviar un newsletter que algunos servidores de correo no admiten ciertos  caracteres en la cabecera (header) del email. Esos caracteres son todos aquellos que no pertenezcan a la tabla ASCII ANSI (en resumen, eñes, palabras acentuadas, etc).

El mensaje que devuelven esos servidores es el siguiente:

Non-encoded 8-bit data (char ED hex): Subject:  bolet355n

Non-encoded 8-bit data (char ED hex): From: bolet355n

Como podeis observar te indican el carácter inválido que está causando el problema, en este caso es la "í" acentuada de la palabra boletín.

Para solucionar esto lo que tenemos que hacer es codificar el asunto o el from. Eso lo hacemos así:

$asunto="=?ISO-8859-1?Q?bolet=EDn=20n=BA=2035?=";

En este caso es como si pusieramos ya codificada esta cadena:

$asunto="boletín nº 35";

Es decir, tenemos que encerrar el texto entre las cadenas "=?ISO-8859-1?Q?" y "?=" y además cada carácter conflitivo tiene que ser sustituido por =XX , siendo XX el código hexadecimal de la codificación ISO 8859-1 que podeis encontrar en esta web:

http://es.wikipedia.org/wiki/ISO_8859-1

Así evitareis que algunos servidores rechacen vuestros emails por esta razón.

p.d: Aunque yo he codificado los espacios en blanco (=20) no es necesario hacerlo.
 
 

El mayor placer de un hombre inteligente es aparentar ser idiota, delante de un idiota que aparenta ser inteligente.