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

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

Twitter Digg Delicious Stumbleupon Technorati Facebook Email

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

  1. Gracias me sirvio tu explicacion y la rutina funciona perfectamente

    Saludos, Daniel

  2. Saludos:
    Como podria adicionarle uno o varios archivos adjuntos

    Gracias

  3. Esta bien padre la rutina me fue de mucha ayuda

    gracias de antemano

  4. El servidor rechazó la dirección del remitente. Respuesta del servidor: 530 5.7.0 Must issue a STARTTLS command first. 7sm1082236qwb.41

  5. tengo el mismo problema que Jeff, el servidor rechazo la dirección del remitente, que puedo hacer, necesito ayuda URGENTE!!!!!!!