miércoles, 30 de marzo de 2016

Enviar email con ASP.NET c# desde godaddy

Cómo enviar email con ASP.NET c# desde godaddy


En este post voy a explicar cómo enviar un correo desde un sitio web alojado en godaddy.

Tengo un formulario de contacto en html con algunos datos básicos como nombre, apellido y correo que debe ser enviado a una cuenta de correo administrativa del sitio. Estoy usando jquery para hacer el llamado al código de envío de correo e imprimiendo en un alert el mensaje de error o éxito.

Es importante mencionar que las cuenta de correo que utilizo para hacer el envío es también administrada por godaddy. Por esta razón tanto el servidor smtp de salida y el puerto los obtuve desde el panel de control de correos de godaddy.

Primero es necesario obtener los datos del servidor smtp de godaddy. Para esto deben ir a la sección de Email dentro de godaddy (Mis productos - email - administrar o algo parecido).

Deben encontrar algo parecido a esto:


De ahí deben tomar el nombre del servidor SMTP. En mi caso es smtpout.secureserver.net

Aqui está el código en c# para enviar correos desde godaddy con ASP.NET razor. Este código es de un archivo cshtml.

@using System.Net.Mail;   
@{      
    var nombre = Request["nombre"];
    var apellido = Request["apellido"];
    var email = Request["email"];
    var telefono = Request["telefono"];
    var pais = Request["pais"];   
    var ciudad = Request["ciudad"];
    var mensaje = Request["mensaje"];
 
    var bodyMail = "<p>Nombre: "+ nombre +"</p>";
    bodyMail += "<p>Apellido: "+ apellido +"</p>";
    bodyMail += "<p>Email: " + email + "</p>";
    bodyMail += "<p>Telefono: " + telefono + "</p>";
    bodyMail += "<p>Pais: " + pais + "</p>";
    bodyMail += "<p>Ciudad: " + ciudad + "</p>";
    bodyMail += "<p>Mensaje: " + mensaje + "</p>";

    MailMessage mail = new MailMessage(email, "administracion@misitio.com");
    SmtpClient client = new SmtpClient();
    client.Host = "smtpout.secureserver.net";
    client.Port = 3535;  //pueden probar con los puertos arriba disponibles   

    client.UseDefaultCredentials = false;
    client.DeliveryMethod = SmtpDeliveryMethod.Network;
    client.EnableSsl = false;
    client.ServicePoint.MaxIdleTime = 1;
    client.Timeout = 1000;
    client.Credentials = new NetworkCredential("administracion@misitio.com", "***");
    mail.IsBodyHtml = true;
    mail.Subject = "Contacto: " + nombre + apellido;
    mail.Body = bodyMail;
   
    try{
        client.Send(mail);
        @Html.Raw("El correo fue enviado correctamente.");
    }catch(Exception err){
        @Html.Raw("Ocurrió un error. Intente nuevamente.");
    }
    mail.Dispose();
}



Cómo ven sólo regreso mensajes de error y éxito porque lo estoy llamando desde uná página html con jquery e imprimo los mensajes en un alert.

Espero les sirva.



4 comentarios:

  1. Hola,

    Acabo de encontrar tu post, y me ha resuelto perfectamente el problema que tenia para enviar correos desde GoDaddy.

    Muchas gracias, muy claro, sencillo y funcionando al 100%

    ResponderBorrar
  2. Muchas gracias!! tengo 2 días tratando de enviar correo desde el servidor de godaddy y he probado muchas alternativas, tu post resolvió mi problema a la perfección! te agradezco mucho!!

    ResponderBorrar