VR-Online (Август-сентябрь 2010)

Page 106

Автор: Поротников Андрей 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 и т.д.). Последнее действие – это отправка письма в блоке try­catch и очистка занимаемых экземпляром MailMessage ресурсов вызовом метода Dispose().

vr­online | сентябрь 2010


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.