miércoles, 26 de febrero de 2020

C#. Cómo enviar mails utilizando Gmail o Microsoft Office 365 ?


Muchas veces requerimos que nuestra aplicación C#, pueda integrarse a un Servidor de Correo Gmail u Office 365, para enviar mails. Si tenemos correo en Hotmail podemos utilizarlo para este ejercicio ya que Hotmail utiliza Office 365. Muchas empresas utilizan estas plataforma para envió de correos, por lo que aca encontrará el código fuente de cómo hacer dicha integración con cualquiera de las dos plataformas.


PROBLEMA : ¿Cómo integrarme a la plataforrma de Gmail o  Office 365 para enviar correos, utilizando lenguaje de programación C# ?

RESPUESTA : El siguiente código fuente es la solución, debe colocar en UserFrom, su cuenta de correo electrónico, en MailTo, establecer el correo destino a quien va enviar mails, puede establecer varios separados por , ejemplo : User1@hotmail.com, user2@gmail.com

//Autor del código fuente : MRiveros.
private void SendMail()
{
    try
    {
        //Conexión a a la Plataforma de Microsofot Office 365 para enviar correo.
        var smtp = new System.Net.Mail.SmtpClient("outlook.office365.com");

        //En el caso que quiera conectarse a plataforma Gmail para enviar correo.
        //var smtp = new System.Net.Mail.SmtpClient("smtp.gmail.com");

        var mail = new System.Net.Mail.MailMessage();
        string userFrom = "myUser@hotmail.com"; //Mi cuenta de Gmail u Office 365.

// IMPORTANTE : Este Usuario mail.From, debe coincidir con el de NetworkCredential(), sino se geenera error.
        mail.From = new System.Net.Mail.MailAddress(userFrom);
               
        //Correos Destino a los que les enviaré mail.
        mail.To.Add(new System.Net.Mail.MailAddress("User1@hotmail.com, user2@gmail.com"));
        mail.Subject = "Pruebas de Office 365";     //Asunto del Correo
        mail.Body = "Cuerpo del mensaje";           //Cuerpo del Mensaje

        smtp.EnableSsl = true;
        smtp.UseDefaultCredentials = false;

        //Credenciales que se utilizan, cuando se autentica al correo de Gmail u Office 365.
        smtp.Credentials = new System.Net.NetworkCredential(userFrom, "xxxx$123");

        smtp.Send(mail);
    }
    catch (Exception ex)
    {
        Log(ex.Message);
    }       
}
Este código esta escrito en un proyecto Web Forms Asp.Net con Visual Studio 2019, pero funcionará en cualquier versión.

IMPORTANTE : Para enviar mails utilizando Gmail, es necesario que de permisos a su cuenta de correo para que pueda hacer este envío.

Cómo activar en Gmail permisos a su cuenta de correo  :
- Ingrese a su cuenta  en www.gmail.com/.
- Seleccionar Preferencias  de la cuenta.
- Siga los pasos 1 al 3.

Con ello habrá activado su cuenta de Gmail para enviar mails.







Si su cuenta de Gmail no esta correctamente activada al tratar de enviar un mail desde el código fuente anterior obtendrá la siguiente Excepción :

El servidor SMTP requiere una conexión segura o el cliente no se autenticó. La respuesta del servidor fue: 5.7.0 Authentication Required. Learn more at.

Listo ahora ya puede integrarse a las dos grandes plataformas de correo.
  • Añadir a la guía de conversación
    • No hay listas de palabras para Español -> Español...
    • Crear una nueva lista de palabras...
  • Copiar
  • Añadir a la guía de conversación
    • No hay listas de palabras para Español -> Español...
    • Crear una nueva lista de palabras...
  • Copiar
  • Añadir a la guía de conversación
    • No hay listas de palabras para Inglés -> Español...
    • Crear una nueva lista de palabras...
  • Copiar
  • Añadir a la guía de conversación
    • No hay listas de palabras para Inglés -> Español...
    • Crear una nueva lista de palabras...
  • Copiar
  • Añadir a la guía de conversación
    • No hay listas de palabras para Español -> Español...
    • Crear una nueva lista de palabras...
  • Copiar
  • Añadir a la guía de conversación
    • No hay listas de palabras para Inglés -> Español...
    • Crear una nueva lista de palabras...
  • Copiar
  • Añadir a la guía de conversación
    • No hay listas de palabras para Inglés -> Español...
    • Crear una nueva lista de palabras...
  • Copiar
  • Añadir a la guía de conversación
    • No hay listas de palabras para Inglés -> Español...
    • Crear una nueva lista de palabras...
  • Copiar
  • Añadir a la guía de conversación
    • No hay listas de palabras para Español -> Español...
    • Crear una nueva lista de palabras...
  • Copiar
  • Añadir a la guía de conversación
    • No hay listas de palabras para Español -> Español...
    • Crear una nueva lista de palabras...
  • Copiar
  • Añadir a la guía de conversación
    • No hay listas de palabras para Inglés -> Español...
    • Crear una nueva lista de palabras...
  • Copiar
  • Añadir a la guía de conversación
    • No hay listas de palabras para Inglés -> Español...
    • Crear una nueva lista de palabras...
  • Copiar
  • Añadir a la guía de conversación
    • No hay listas de palabras para Español -> Español...
    • Crear una nueva lista de palabras...
  • Copiar

No hay comentarios.: