Enviar correo con Powershell con tildes y Ñ
Retomo la publicación, con un artículo de lo que a priori es una tontería, pero que me ha tenido ocupado tres días hasta que he dado con la solución.
Como pone en el título, mi caballo de batalla ha sido, simplemente, el poder enviar un correo desde Powershell con las tildes y las “ñ” que todo el mundo de habla hispana necesita.
Para el que no lo sepa, Powershell es la consola de Microsoft que da el paso evolutivo al “limitado” Command Prompt. El que sea la consola moderna de Windows no quiere decir que sea un entorno amigable, ya que en un alarde de locura, los creadores de Powershell se han dedicado a establecer comandos ininteligibles, difíciles de memorizar, basados en objetos y demás gaitas varias. Incluso a alguien como yo que está acostumbrado a hacer algún que otro script en bash (lenguaje nativo de la consola Linux) o incluso el que use otros leguajes como python, perl, rubi, etc, lo tiene complicado el poder meterse hacer ShellScripting en Powershell sin pasar un calvario.
Me gusta usar la consola para mandar correos no-reply a las peticiones de mi formulario de contacto, pues desde la Shell de bash es una cosa sencilla, pero en Powershell, ha sido todo un reto. No me refiero a mandar el correo desde la consola, eso es fácil y hay mogollón de sitios en internet que te explican como hacerlo. El que tenga curiosidad de mandar un correo desde Powershell no tendrá problemas en encontrar como se hace, por eso no lo voy poner aquí.
El problema ha sido el poner el contenido en cristiano, ya que powershell al igual que la mayoría de herramientas de Linux son hechas para y por los protestantes, amén del resto de pobres de espíritu que crean software y los manuales los ponen en ingles en vez de su lengua natal que es el castellano. Un día en mi blog entraré mas en materia en este tema del inglés como lengua “universal”, pero aquí no corresponde.
Después de leer muchas webs, de ver cambios de codificación de archivos, de incluso tocar el registro para arrancar powershell con codificación diferente a la default, que no tiene ningún problema en mostrar los caracteres especiales, la solución fue tan sencilla como añadir “-Encoding OEM” justo después del comando “Send-MailMessage”.
Como veis una tontería, que no he visto resuelta en ninguna web, y que me ha tenido loco durante 3 días.
05/05/2018