Автор: Поротников Андрей aka wwwnet
106
Школа
C#
Tips & Tricks Напиши мне, напиши!
Не редко случается ситуация, когда программе требуется отправить какоелибо сообщение на определенный адрес. Например, у вас есть программа мониторинга, которая должна отправить сообщение при аварийной ситуации. Средствами C# это сделать не просто легко, а очень легко. В данной статье я приведу пример отправки письма, рассказав об основных моментах.
Для примера я создал форму, содержащую три поля ввода (Кому, Тема и тело письма) и кнопку Отправить:
}
message.Subject = txtSubject.Text; message.SubjectEncoding = Encoding.UTF8; try { client.Send(message); } catch(Exception ex) { MessageBox.Show(ex.Message); } message.Dispose();
Вначале проверяется, заполнено ли поле txtTo (Кому). Если нет, то показываем сообщение и завершаем выполнение процедуры.
Затем создается экземпляр объекта SmtpClient, который и позволяет приложениям отправлять письма по протоколу smtp. SmtpClient client = new SmtpClient("ServerName");
Сразу в конструкторе указываем имя почтового сервера. Это может быть MyExchange в локальной сети или mail.ru в интернете. Затем задаем настройки аутентификации: Собственно, код при нажатии на кнопку Send следующий:
private void button1_Click(object sender, EventArgs e) { if (txtTo.Text == string.Empty) { MessageBox.Show("Please specify the address"); return; } SmtpClient client = new SmtpClient("ServerName"); client.Credentials = new NetworkCredential("UserName", "Password", "DomainName"); MailAddress from = new MailAddress("UserEMail", "FromWho", Encoding.UTF8); MailAddress to = new MailAddress(txtTo.Text); MailMessage message = new MailMessage(from, to); message.Body = txtMessage.Text; message.BodyEncoding = Encoding.UTF8;
client.Credentials = new NetworkCredential("UserName", "Password", "DomainName");
В данном случае задается три параметра: имя пользователя, его пароль и домен.
Следующее действие – это создание двух экземпляров объекта MailAddress, который представляет электронный адрес. Первый – это адрес отправителя, второй – адрес получателя.
Наконец, создаем сообщение как экземпляр класса MailMessage и заполняем его параметры. В примере показан минимум, который нужен для письма, в реальном приложении его можно расширить за счет прочих полей (например, кому отсылать копии – параметр CC и т.д.). Последнее действие – это отправка письма в блоке trycatch и очистка занимаемых экземпляром MailMessage ресурсов вызовом метода Dispose().
vronline | сентябрь 2010