Mostrando las entradas con la etiqueta enviar correo con cshtml desde godaddy. Mostrar todas las entradas
Mostrando las entradas con la etiqueta enviar correo con cshtml desde godaddy. Mostrar todas las entradas

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.