Recientemente implementé correos electrónicos entrantes para una aplicación y chico, ¿abrí las puertas del infierno? Desde entonces, cada dos días llega un correo electrónico que hace que la aplicación falle de una manera diferente.
Una de esas cosas son los correos electrónicos codificados como UTF-7. La mayoría de los correos electrónicos vienen como ASCII, algunas de las codificaciones latinas, o afortunadamente, UTF-8.
Los mensajes de error de Hotmail (como la dirección de correo electrónico no existe o se excede la cuota) parecen venir como UTF-7. Desafortunadamente, UTF-7 no es una codificación que Ruby entiende:
> "hello world".encode("utf-8", "utf-7")
Encoding::ConverterNotFoundError: code converter not found (UTF-7 to UTF-8)
> Encoding::UTF_7
=> #<Encoding:UTF-7 (dummy)>
Mi aplicación no se bloquea, en realidad maneja el correo electrónico bastante bien, pero me envía una notificación sobre el posible error.
Pasé un tiempo buscando en Google y no puedo encontrar a nadie que haya implementado la conversión, al menos no como Ruby 1.9.3 Encoding :: Converter.
Entonces, mi pregunta es, dado que nunca recibí un correo electrónico con contenido real, de una persona real, en UTF-7, ¿qué tan relevante es esa codificación? ¿Puedo ignorarlo con seguridad?