Me pone programar

Más que me pone, digamos que me gusta y disfruto con ello

Me pone programar

Blog personal sobre PHP, JavaScript, CSS, Estándares, Flash i demás temas interesantes del mundo de la informática e Internet

Acentos en los subjects de los emails. Ampliado

15/08/2008 a las 10:42 por Shox

Como pudimos ver en otro post, poner acentos o carácteres extraños en los subjects de los emails ya no es un misterio.

Leyendo el fabuloso libro “Building Scalable Web Sites -  The Flickr way” he profundizado más en el tema.
El formato se compone de lo siguiente:

=?utf-8?Q?hello_=E2=98=BA?=

que corresponde a:

=?charset?encoding?encoded-text?=

Vamos por partes, el charset utilizaremos siempre utf-8, ya que es nos posibilita enviar cualquier tipo de cadena de carácteres, sin limitar el alfabeto o idioma.

El encoding, puede ser B o Q, y depende de su codificación, el texto codificado será de una manera o otra:

B - Codificación en Base64: Es la que utilicé en el anterior post, codificando todo el string posteriormente en base64.

Q - Codificación en Quoted Printable (RFC 3548): Cada byte representa un literal comenzando por el símbolo igual (=) seguido por dos dígitos hexadecimales. Por ejemplo el byte 0×8A se representaría con =8A. Los espacios (0×20) serán substituidos por el literal underscore (_, byte 0×5F). Los demás carácteres alfanuméricos se quedarían como están.

¿Cual es la mejor opción? Ambas generarán un subject bien formado, peró quizas en modo Q, el texto codificado final es un poco más human-friendly, que el codificado en base64.

Amazon - Building Scalable Web Sites; de Cal Henderson (O’Reilly)

Categorías: Meponeprogramar, PHP
Tags: , , ,
Comentarios: Sin comentarios »

Acentos en los subjects de los mails

29/06/2008 a las 06:58 por Shox

La codificación de los páginas ha tenido muchos misterios para mi durante mucho tiempo, pero poco a poco los he ido salvando todos. Uno de los que me tenía más preocupado, por que lo había provado casi todo, es el de subjects o asunto de los emails.

Siempre había conseguido enviar emails bien codificados, pero el asunto siempre llegaba con X , interrogantes o demás símbolos raros. La solución como siempre, la tiene Google.

Si queremos enviar un asunto tal que “Título del mensaje” la letra í acentuada debe estar codificado en quoted printable, y el mensaje debe de tener unos carácteres especiales para especificarle codificación:

=?UTF-8?B?T=EDtulo del mensaje?=

Que en PHP podemos conseguirlo mediante:

$title=”=?UTF-8?B?”.base64_encode($title).”?=\n”;

y así conseguimos pasar, en el ejemplo, la í acentuada por su correspondiente en ASCII: =ED

Si no la teneis ya, esta es una línea básica que siempre deberia ir en vuestros sites donde se envien emails.

Categorías: PHP
Tags: , ,
Comentarios: 1 comentario »