Envío de mail en C# usuando un smtp que requiere autenticación

Patxi Echarte, February 2nd, 2005

El envío de emails desde .Net es realmente sencillo, es necesario únicamente utilizar el namespace System.Web.Mail proporcionado por la librería System.Web.dll

Dentro de este namespace disponemos de una clase de objetos MailMessage mediante la cual podemos crear emails y enviarlos mediante el método estático Send de la clase SmtpMail.

Sin embargo hay situaciones en las que no disponemos de un servidor smtp local y hay que utilizar uno remoto. En estas situaciones es habitual que el servidor tenga deshabilitado el relaying y nos pida una autenticación para poder enviar emails a través suya.

A continuación se muestra un ejemplo de como realizar este envío, pasándole al servidor smtp la información de autenticación junto al correo.

protected void SendEmail(){
   MailMessage mail = new MailMessage();
   
   mail.To = "destinatario@example.com";
   mail.From = "remitente@example.com";
   mail.BodyFormat = MailFormat.Html;
   mail.Subject = "Asunto del mensaje";
   mail.Body = "Cuerpo del mensaje";
   
   try {
      mail.Fields["http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"] = 1;
      mail.Fields["http://schemas.microsoft.com/cdo/configuration/sendusername"] = "usuario";
      mail.Fields["http://schemas.microsoft.com/cdo/configuration/sendpassword"] = "clave";
      SmtpMail.SmtpServer = "smtpserver";
   
      SmtpMail.Send(mail);
   }
   catch(Exception MailEx){
      throw new Exception(MailEx.Message);
   }
   finally{
      ;
   }
}

Referencias

Comparte esta información

3 Comentarios para “Envío de mail en C# usuando un smtp que requiere autenticación”

  1. Daniel dice:

    Gracias me sirvio tu explicacion y la rutina funciona perfectamente

    Saludos, Daniel

  2. Augusto dice:

    Saludos:
    Como podria adicionarle uno o varios archivos adjuntos

    Gracias

  3. T.S.U. Gerardo Perez dice:

    Esta bien padre la rutina me fue de mucha ayuda

    gracias de antemano

Deja un comentario