C#: Отправка E-Mail

Сегодня мы рассмотрим еще один достаточно популярный вопрос: «Как отправить почтовое сообщение из своей программы?». Язык C# в очередной раз удивит простотой реализации данной задачи. Перейдем к сути вопроса…

Для начала нам необходимо подключить два неймспейса в наш проект.

using System.Net;
using System.Net.Mail;

Далее, как и всегда, будем сразу писать готовую функцию. Очевидно, что для отправки сообщения нам нужен адрес получателя, тема сообщения и текст сообщения. Имеем следующую заготовку:

public static bool SendMail(string To, string Title, string Text){}

Первым этапом будет создание SMTP подключения с нашими параметрами: адрес отправителя, пароль, адрес сервера и т.п.

SmtpClient Smtp = new SmtpClient("smtp.yandex.ru");
Smtp.Credentials = new NetworkCredential("address@yandex.ru", "password");

Далее формируем само письмо:

MailMessage Mes = new MailMessage();
Mes.From = new MailAddress("address@yandex.ru", "Test");
Mes.To.Add(new MailAddress("to@rambler.ru"));
Mes.Subject = "Заголовок сообщения";
Mes.Body = "Текст сообщения";

При желании можно прикрепить файл и делается это через класс Attachment, но при желании это можно посмотреть в MSDN. Редко когда приходилось пользоваться прикреплением файлов, как правило это не требуется =)

Ну собсвенно осталось только отправить письмо:

Smtp.Send(Mes);

В итоге имеем следующую функцию:

public static bool SendMail(string To, string Title, string Text)
{
   try {   
   SmtpClient Smtp = new SmtpClient("smtp.yandex.ru");
   Smtp.Credentials = new NetworkCredential("address@yandex.ru", "password");   

   MailMessage Mes = new MailMessage();
   Mes.From = new MailAddress("address@yandex.ru", "Test");
   Mes.To.Add(new MailAddress(To));
   Mes.Subject = Title;
   Mes.Body = Text; //Для наглядности =)

   Smtp.Send(Mes);
   }
   catch { return false; }
   return true;
}

Пример:

if (SendMail("foolsoft@foolsoft.ru", "Hello!", "Привет!\r\nКак дела?")) 
   MessageBox.Show("Message send!");
else 
   MessageBox.Show("Message send error!");
Запись опубликована в рубрике C# с метками , , , . Добавьте в закладки постоянную ссылку.