Utilizando el espacio de nombre (namespace) System.Net.Mail, enviar un correo electrónico desde .NET es tarea sencilla.
Las clases que utilizaremos son:
- SmtpClient: permite a la aplicación enviar el mensaje de correo electrónico mediante el protocolo SMTP.
- MailMessage: representa el mensaje de correo electrónico que será enviado mediante la clase SmtpClient.
- MailAddress: representa la dirección de un remitente o destinatario de correo electrónico.
- NetworkCredential (esta clase pertenece al namespace System.Net): proporciona la credencial para el esquema de autenticación.
Para ejemplificar el uso, veamos directamente un poco de código escrito en C#:
{
mMail m = new mMail();
m.From(textDeCorreo.Text, textDeNombre.Text);
MessageBox.Show(m.Send(textAMail.Text,textAAsunto.Text,textContenido.Text));
}
{
private String fromMail;
private String fromName;
SmtpClient client;
public mMail()
{
client = new SmtpClient();
client.Credentials = new NetworkCredential("nombre@servidor.com", "password");
client.Port = 587;
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
}
public void From( String fromMail, String fromName )
{
this.fromMail = fromMail;
this.fromName = fromName;
}
public String Send(String to, String subject, String body)
{
MailMessage msg = new MailMessage();
msg.To.Add(to);
msg.From = new MailAddress(this.fromMail, this.fromName , System.Text.Encoding.UTF8);
msg.Subject = subject;
msg.SubjectEncoding = System.Text.Encoding.UTF8;
msg.Body = body;
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = true;
try
{
this.client.Send(msg);
return "Mail enviado correctamente";
}
catch (Exception ex)
{
return ex.Message;
}
}
}



Ivan
agosto 18, 2011
Genial muy buen código muchaS pero mcuhas gracias..
estaría padre poder enviar los emails desde cualquier cuenta se correo
electrónico (incluir tambien hotmail por ejemplo), seguiré investigando, soy nuevo en esto
muchisimas gracias.