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