Сегодня мы рассмотрим еще один достаточно популярный вопрос: «Как отправить почтовое сообщение из своей программы?». Язык 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!");