Enviar correos con C# usando Mono

Si necesitáis conectaros a un servidor SMTP para hacer envíos de correos desde una aplicación que corre Mono, os dejo el código siguiente que seguro que os es de utilidad. Este ejemplo en concreto envía un mensaje usando un SMTP que requiere autenticación, si necesitáis alguna variantes: varios destinatarios, SMTP sin autenticación o cualquier otra cosa, ¡preguntad en los comentarios!

public static void Main (string[] args)
{
	MailAddress para = new MailAddress("para@direccion.com");
	MailAddress desde = new MailAddress("desde@direccion");

	MailMessage mensaje = new MailMessage(desde, para);
	mensaje.Subject = "Asunto";
	mensaje.Body = @"Cuerpo del correo";

	SmtpClient cliente = new SmtpClient("direccion_servidor", puerto);
	cliente.Credentials = new System.Net.NetworkCredential
("nombre_usuario", "contraseña_usuario");
	Console.WriteLine("Enviando mensaje de correo para: " + para.User
 + " en " + para.Host + " usando el servidor=" + cliente.Host + ".");

      	try {
	  cliente.Send(mensaje);
	  Console.WriteLine("Mensaje enviado");
	}
	catch (Exception ex) {
	  Console.WriteLine("Problemas enviando mensaje: " + ex.ToString());
	 }
}

Tened en cuenta que estamos trabajando con el espacio de nombres del ensamblado: System.Net.Mail.

Como veis el procedimiento es simple:

  1. Se crean dos objetos para las direcciones de correo
  2. Se crea el mensaje en sí
  3. Se instancia el cliente SMTP, inicializando las credenciales
  4. Para finalmente llamar al método de envío

Respondemos las dudas y sugerencias en los comentarios.