primero agregamos en nuestro web.config las lineas para configurar nuestro SMTP de la siguiente forma:
Luego creamos una rutina para el envio de mail, para esto debemos importar los siguientes espacios de nombres:
using System.Net; using System.Net.Mail; using System.Net.Mime;
y la rutina para envios de mail sería la siguiente:
public void Enviar_mail(string para, string copia, string asunto, string titulo, string mensaje, string attach) { //Creamos el mensaje MailMessage Message = new MailMessage(); //Agregamos el destinatario Message.To.Add(new MailAddress(para)); //Agregamos el asunto Message.Subject = asunto; //Le decimos que soporte HTML en el body Message.IsBodyHtml = true; //Le agregamos el body o cuerpo del mesaje Message.Body = mensaje; //Si va con copia a alguien lo agregamos if (copia != "") Message.CC.Add(new MailAddress(copia)); //Si tiene un adjunto se lo agregamos if (attach != "") { Attachment data = new Attachment(attach, MediaTypeNames.Application.Octet); Message.Attachments.Add(data); } SmtpClient client = new SmtpClient(); //Enviamos el mail (Automáticamente toma la configuración del web.config) client.Send(Message); }
Con esto ya tendríamos nuestro envió de mails fácil y sencillo.
Hola! Muchas gracias por los tutoriales.
ResponderEliminarEstoy mirando tu código para enviar el correo, y he visto que usas el .Send(),
Si en la web tienes mucho tráfico, creo que sería mejor usar el .SendToQueue o .SendMailToQueue, no recuerdo exactamente como era, de tal manera que creas el mensaje a enviar, lo dejas en la cola y vuelves al control de la página, de tal manera que se enviará en cuanto pueda el servidor de correo, mientras que de la otra manera, el C# está esperando hasta que el mensaje se haya enviado, con lo que es probable que exista una pequeña demora en la espera.
Muchas gracias por todo, un saludo!!
Si, este método es sincrónico, para que sea asincrónico podemos usar client.SendAsync(Message, Token).
ResponderEliminarSaludos y gracias por tu comentario!!!