Enviar e-mail desde aplicación C# .Net con cuenta de GMail SSL y guardar contraseña encriptada en fichero de configuración

Mostramos el código necesario para enviar un correo electrónico (eMail) desde una aplicación en C#, usando Microsoft Visual Studio Community 2019 y una cuenta de GMail. Explicamos paso a paso con el código fuente cómo enviar el mail mediante SSL y cómo guardar la contraseña encriptada y otros datos de conexión en un fichero de configuración.

Requisitos para enviar e-Mail con cuenta de GMail desde aplicación C# .Net

A continuación indicamos los requisitos para poder desarrollar una aplicación en C# .Net que envíe un correo electrónico usando una cuenta de Google GMail y que guarde los datos de conexión al servidor en un fichero de configuración, con las contraseñas encriptadas.

Habilitar acceso de aplicaciones poco seguras en tu cuenta de GMail

En primer lugar tendremos que habilitar la opción de seguridad en nuestra cuenta de GMail. Para ello accederemos a GMail con el usuario y contraseña de nuestra cuenta y pulsaremos en «Cuenta»:

En «Seguridad» pulsaremos en «Activar acceso» dentro del grupo «Acceso de aplicaciones poco seguras:

Y deslizaremos el control a Sí en «Permitir el acceso de aplicaciones poco seguras»:

Google GMail nos advertirá con el siguiente texto, indicando que es una opción poco recomendable:

Algunos dispositivos y aplicaciones utilizan una tecnología de inicio de sesión poco segura, lo que aumenta la vulnerabilidad de tu cuenta. Te recomendamos que desactives el acceso de estas aplicaciones, aunque también puedes activarlo si quieres usarlas a pesar de los riesgos que conllevan. Desactivaremos este ajuste de forma automática si no lo utilizas.

Si no tenemos esta opción habilitada al enviar un correo electrónico con la cuenta de GMail desde nuestra aplicación C Sharp .Net nos mostrará el error:

System.Net.Mail.SmtpException El servidor SMTP requiere una conexión segura o el cliente no se autenticó. La respuesta del servidor fue: 5.7.0 Authentication Required.

Y hay que tener en cuenta algo muy importante: si dejamos de usar la aplicación de envío de mails durante unas semanas Google desactivará esta opción automáticamente, por lo que cuando volvamos a usarla volverá a mostrarnos el error anterior. En este caso tendremos que habilitarla de nuevo como hemos explicado anteriormente.

IDE de desarrollo Microsoft Visual Studio Community 2019

Necesitaremos disponer del IDE de desarrollo Microsoft Visual Studio Community 2019, también es válido para versiones anteriores. Este IDE es gratuito y puede descargarase e instarlarse de la web oficial de Microsoft, como indicamos en el siguiente artículo:

Envío de correos electrónicos e-mails con SSL usando cuenta de GMail desde aplicación C# .Net

Crearemos la aplicación como hemos explicado en este artículo y agregaremos las clases que a continuación detallamos.

Añadiremos una clase con el nombre CifrarDescifrarTexto, que será la encargada de cifrar y descifrar la contraseña de acceso a la cuenta de GMail para la autenticación en el envío del correo electrónico. De esta forma la contraseña no quedará a la vista en texto plano. Para ello pulsaremos en «Proyecto» – «Agregar clase»:

Introduciremos el nombre del fichero de clase, en nuestro caso «CifrarDescifrarTexto.cs» y pulsaremos «Agregar»:

Añadiremos el siguiente código a la clase, teniendo en cuenta que nuestra aplicación se llama «BotComunidadBiker», por lo que el «namespace» se llamara «BotComunidadBiker»:

Crearemos otra clase, llamada «EscribirLog» que escribirá en un fichero de texto las acciones que se van realizando y los posibles errores que se puedan producir. Incluso en una aplicación de consola mostrará también el mensaje en la propia consola. El código de esta clase será:

La siguiente clase, llamada «LeerGuardarDatosConfiguracion» leerá y escribirá los datos de configuración de la aplicación: usuario, contraseña, servidor de mail, puerto, SSL, etc. en un fichero de configuración XML:

Y la última clase, llamada «EnviarEMail» será la que conecte con el servidor de GMail y envíe el correo electrónico:

Por último, en la propia aplicación, crearemos un procedimiento de ejemplo para usar la clase anterior y enviar un correo electrónico.

Un ejemplo de uso de la clase para guardar la configuración en el fichero XML y encriptar la contraseña:

Y un ejemplo de uso para el envío del correo electrónico:

alonsojpd

alonsojpd

Presidente y fundador de Proyecto A y AjpdSoft

También te podría gustar...

Deja una respuesta