Que tal compañeros, en esta ocasión les traemos un artículo sobre como enviar correos electrónicos desde una aplicación de Windows Forms o bien desde un sitio Web ASP.NET con C#.
Lo primero que debemos hacer es importar las librerías siguientes que son las que utilizaremos para el correcto funcionamiento de la aplicación:
using System.Text; using System.Net.Mail; using System.Net;
Después de haber importado estas librerías pasaremos directamente al fragmento de código que usaremos para enviar el correo electrónico con C#. En dicho código nos autenticaremos con una cuenta de correo electrónico de Gmail dado que nos da facilidades para el envío y conocemos su configuración SMTP pero este código debe funcionar para cualquier proveedor de correo electrónico siempre y cuando se conozcan y se especifiquen los parámetros que solicita su configuración SMTP.
public static Boolean SendMail() { try { //Configuración del Mensaje MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); //Especificamos el correo desde el que se enviará el Email y el nombre de la persona que lo envía mail.From = new MailAddress("tucorreo@gmail.com", "TuNombre", Encoding.UTF8); //Aquí ponemos el asunto del correo mail.Subject = "Prueba de Envío de Correo"; //Aquí ponemos el mensaje que incluirá el correo mail.Body = "Prueba de Envío de Correo de Gmail desde CSharp"; //Especificamos a quien enviaremos el Email, no es necesario que sea Gmail, puede ser cualquier otro proveedor mail.To.Add("destinatario@hotmail.com"); //Si queremos enviar archivos adjuntos tenemos que especificar la ruta en donde se encuentran mail.Attachments.Add(new Attachment(@"C:\Documentos\carta.docx")); //Configuracion del SMTP SmtpServer.Port = 587; //Puerto que utiliza Gmail para sus servicios //Especificamos las credenciales con las que enviaremos el mail SmtpServer.Credentials = new System.Net.NetworkCredential("tucorreo@gmail.com", "tupassword"); SmtpServer.EnableSsl = true; SmtpServer.Send(mail); return true; } catch (Exception ex) { return false; } }
Ya con esto debemos lograr enviar correos electrónicos desde una aplicación C#, este código funciona tanto para aplicaciones de escritorio Windows Forms así como para aplicaciones Web ASP.NET.
Para enviar correos electrónicos con otro proveedor como por ejemplo Hotmail debemos conocer los parámetros correctos para la configuración SMTP.
Hola, muchas gracias por el codigo, trate de colocarlo en mi sitio, coloque los using que especificaron , pero la palabra Encoding.UTF8 no la reconoce, que podrá ser?, para que utilizarlo?
Me puede ayudar?
Gracias!
Hola Laura, disculpa la tardanza y efectivamente faltaba un using que es System.Text
Gracias por comentarlo y esperamos que la información haya sido de tu ayuda. Sigue vistándonos.
excelente aporte man!
Muchas Gracias fue de mucha ayuda
Como podria hacer si tengo un correo cooperativo en dicho caso ? ya que aplicando lo que colocas me sale un error diciendo simplemente EL MENSAJE NO HA SIDO ENVIADO, aun tengo problems con eso espero que me contactes ( javivesbernal@hotmail.com )
Atte. Gracias.
excelente viejo!! te pasaste!!
y este codigo en donde se coloca
Dependiendo lo que necesites, lo puedes colocar como un método tal cual se muestra en el ejemplo o en el evento Click de un botón, o en cualquier otro evento. Solo tienes que agregar los usings que se muestran al principio. Saludos!
y como lo ejecuto
Depende, te voy a poner un ejemplo. Si haces una solución de Windows Forms con C# vas a poner un botón y en el evento Click de dicho botón pones este código (Sin la parte de public static Boolean SendMail() y sus respectivas llaves), una vez hecho esto compilas la solución, das click al botón y el código se ejecutará
muchas pero muchas gracias soy estudiante estoy desarrollando un programa de nomina el cual enviara la colilla de pago al correo del empleado mediante un crystal report como puedo convertir ese crystal report en formato pdf.
si me puedes ayudar estaré muy agradecido gracias
Hola, puedes probar utilizando la función ExportReport()
Form1.CrystalReportViewer1.ExportReport()
Saludos!
muchas gracias brother lo unico que no me salio fue que al correo de hotmail no funca y a los demas dominios si se envia el mail sabes talvez por que? de todas formas muchas gracias fue de gran ayuda
Muchas gracias por el ejemplo. Me fue de mucha ayuda.
muy bueno me sirvio bastante 🙂
Simplemente perfecto Funciona al 100 y ademas muy interesante Gracias :DD
Yo quiero registrar a diferentes usuarios y enviarles a su correo el usuario y password claro esta al correo q ellos registran al momento de estar registrandose-
Belleza!! mil gracias por el codigo t agradezco
Hola, me funciono excelente tu ejemplo y lo entendí muy bien te felicito.
Pero tengo una cuestión pues lo que necesito es mandar un correo por una red interna y quisiera saber si es necesario usar el smtp de gmail o si se pudiera enviar sin necesidad de este y si es así me pudieras explicar como?
Saludos.
En una red interna tu deberás montar tu propio servidor SMTP. Una vez que lo tengas funcionando puedes utilizar el mismo código, únicamente cambiando los parámetros de conexión al servidor tales como dirección, cuenta, puerto, etc.
Cualquier cosa seguimos online.
Saludos.
buenas esa funcion puede Enviar las alertas vía email
y cual seria para recibir Recibir la cancelación de alerta vía email.?
Muy buena entrada, tengo un post muy parecido a este, gran aporte.
Anexo Url:
http://devcate.blogspot.com/2012/09/codigo-enviar-correo-con-aspnet.html
muchas gracias por el aporte, groso total
Me gusto mucho pero en el debug me muestra un error y el catch y me dice que que no se puede conectar al servidor remoto de verdad me seria de mucha ayuda si pudieras resolverme esta duda
Buenas, muy clara la explicación. Muchas gracias.
Sólo una pregunta: ¿cómo le paso un correo cuando se requiere enviar una copia a otro destinatario?
Juan Carlos
Si requieres enviar con copia puedes usar la siguiente línea de código
mail.CC.Add(«destinatario@hotmail.com»);
Esto lo agregas debajo de mail.To.Add(«destinatario@hotmail.com»);
Buenas muy bien lo explicado pero como hago para aplicar esto a un servicio de windows en C# que me permita enviar correos de forma automática a través de una fecha de vencimiento dandole un mensaje de alerta que le quedan menos días a (x) trabajo..??
mmmiiiiiillllllll ggggggrrrrrrrraaaaaccciiiiiaaaassssss mennnn
muchas gracias me sirvió muy bien
disculpa amigo lo que quiero hacer no poner los correos estaticos asi como tu ejemplo si no que los tome de un dropdownlist los valores de los correos ya que el usuario elejira a que correo desea enviarlo puedes ayudarme?? te lo agradeceria mucho
Claro, lo que puedes hacer es recibir el valor seleccionado del DropDownList en una variable y sustituir los correos estáticos que pongo en el ejemplo por dicha variable.
Saludos.
Como visualizar la bandeja de entrada desde una aplicación C#
ssiii muy buenoooo!!!!!!!!!! like like like
Excelente aportación mi hermano, que la gracia de Dios esté siempre sobre ti…
muy bueno. Excellent
Muy bueno, muchísimas gracias!! una pregunta para enviárselo a varias personas, en el
mail.CC.Add(“destinatario@hotmail.com, Otrodestinatario@hotmail.com ”);
se tiene que separar por comas o que?
Amigo, no me funciona el código. Lo estoy haciendo con el correo de mi empresa, y no está funcionando. A la hora de que lo ejecuto, el navegador se queda pensando y luego cae en el catch y me dice que hubo un error a la hora de enviar el correo.
Comunicate conmigo. dani.worship17@gmail.com
me dice que hay un problema al enviar el correo como lo soluciono?
Disculpa me marca error en la parte del return. saludos
[…] FUENTE […]
Disculpe una pregunta, como podria arrastrar o que me reconozca todos los correos electronicos de la base de datos para poder enviarles el mensajes a travez del formulario c#, bueno y que pueda mandar correos a una fecha especifica. Muchas gracias por los comentario.
exelente
Gracias 😉
Me aparece el siguiente error:
System.Net.Mail.SmtpException: El servidor SMTP requiere una conexión segura o el cliente no se autenticó
Comprendo todo el codigo pero al momento de ejecutarlo desde un boton no funciona, espero me puedas ayudar, slds
Muchas gracias por compartir, saludos y bendiciones.
AYUDAAAAAAAAAA
Hola, estoy trabajando con un servidor externo, pero mi aplicacion e c# lanza este error –> La respuesta del servidor fue: 5.7.1 Unable to relay hace dias mi aplicacion estaba funcionando correctamente.
tengo 2 aplicaciones una realizada en java y otra en c#, y java aun sigue mandando los mensajes sin problema