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!!!