Ir al contenido principal

colocar acentos en el subject de un mail

Tuve que desarrollar un programa que enviaba mail a distintas personas, pero me encontre con varios problemas de encoding. el principal fue el problema al colocar acentos en el subject del mail.

para sorpresa mia encontre en un pagina que hay que codificar el subject para que tome caracteres especiales como acentos y ennes(tengo el teclado en ingles).

este programa lo estaba haciendo en c#. y para que muestre acentos hay que codificarlo en base64 de la siguiente forma:


subject = "=?ISO-8859-1?B?" + Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(texto))+"=?=";


ademas de codificar el string, tenemos que pasar esto "=?ISO-8859-1?B?" al inicio inicio del string, para que el que
despliga el correo sepa que el asunto esta codificado indicandole la codificacion en que se codifico.


Nota: en php tambien hay funciones para manejar la codificacion en base 64



Comentarios

  1. Puedo estar hablando leseras (hace tiempo que no meto mano en .NET), pero eso arregla los acentos, pero no otros caracteres que pueden estar fuera de ISO8859-1, como el del símbolo del euro (€).

    Al final lo más cuerdo es que las aplicaciones "hablen" UTF-8, que aguanta caracteres de todos lados, pero no tengo idea como se haría en .NET.

    Acá hay un post (algo viejo) de como se hace en Python.

    ResponderEliminar
  2. aqui hay 2 ejemplos como codificar en utf-8 en .net

    http://codelog.climens.net/2007/07/17/escribir-texto-con-aspnet/
    http://www.codeproject.com/KB/aspnet/Encoding_in_ASPNET.aspx

    con esto de las codificaciones siempre me he confundido. jejeje :)

    ResponderEliminar
  3. Gracias Víctor Hugo, estuve renegando algunos días con esto de los acentos en el asunto y con tu post pude solucionarlo.

    Muchas gracias!
    Aníbal.

    ResponderEliminar
  4. Buena capo! puf! me ahorraste un montón! ví el los mensaje en formato raw de gmail pero no lo entendía, con tu código funciono joya. Y también muestra el símbolo del euro. Lo codifique así base64.b64encode("texto") ...normal Gracias!

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

buscar columnas en todas las tablas Sql Server

me vi en la necesidad de buscar en todas las tablas de una base de datos por un comodin ya que no conocia bien el modelo de la base de datos.
aqui les dejo el sql.
SELECT sysobjects.name AS table_name, syscolumns.name AS column_name, systypes.name AS datatype, syscolumns.LENGTH AS LENGTH FROM sysobjects INNER JOIN syscolumns ON sysobjects.id = syscolumns.id INNER JOIN systypes ON syscolumns.xtype = systypes.xtype WHERE (sysobjects.xtype = 'U') and (UPPER(syscolumns.name) like upper('%myFieldName%')) ORDER BY sysobjects.name, syscolumns.colid


Solo tienen que cambiar donde dice "myFieldName"por el nombre de la columna que desean buscar.

--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

"is not null" o "<> Null" en Sql Server

Trabajando con NHinbernate. mapeando unas clases, guardaba unos datos y hacia esta consulta para ver si estaba bien:


select * from table where campo <> NULL;


pero no me arrojaba los datos que queria y luego darle y darle vueltas hice esta consulta.

select * from table where campo is not NULL;


y ahi me di cuenta que el mapeo de Hibernet, y los cambios que habia hecho estaban bien. perdi toda una mañana de trabajo por esto :(.


Asi no es lo mismo "is not null" o "<> Null", por lo menos en Sql Server

Entonces ahora cada vez que quiera preguntar si un capo no es Null, voy a preguntar por "IS NOT NULL".

En caso de que quiera saber si un campo es null "IS NULL".




--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

Aplicación y Aplicativo

Cada dia es mas comun escuchar de aplicativo para referirse a un programa informatico,  esto puede sonar bastante cool, pero la verdad es que no lo es. El termino "aplicativo"  no existe en informatica, la palabra correcta para referirse a un programa informatica es "Aplicacion".

Las definiciones segun la real academedia española son;


Aplicación (informatica): Programa preparado para una utilización específica, como el pago de nóminas, formación de un banco de términos léxicos, etc.Aplicativo: Que sirve para aplicar algo.
y ustedes van a seguir usando aplicativo en vez de aplicación
Links:
http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=aplicativo http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=aplicaci%F3n


--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com