· 9 years ago · Dec 21, 2016, 12:20 AM
1 //обработчик кнопки отправлениÑ, указываем Ñервер, адреÑатов, формируем пиÑьмо и раÑÑылаем на один или неÑколько адреÑов
2 private void buttonMessageSend_Click(object sender, EventArgs e)
3 {
4 //Ñоздаем объект пиÑьма
5 MailMessage mail = new MailMessage();
6 //проверÑем, не пуÑÑ‚ ли лиÑÑ‚ адреÑатов
7 if (listViewRecipients.Items.Count == 0)
8 {
9 //еÑли пуÑÑ‚, то Ñоздаем диалоговое окно Ñ Ñообщением нет получателей, показываем его и выходим из функции
10 string message = "No recipients!";
11 DialogResult result;
12
13 result = MessageBox.Show(message);
14 return;
15 }
16 //допиÑываем, еÑли зашли Ñ ÑÐ½Ð´ÐµÐºÑ Ð¿Ð¾Ñ‡Ñ‚Ñ‹, так как там логин без Ñтой чаÑти
17 if (smtpServer == "smtp.yandex.ru")
18 {
19 login += "@yandex.ru";
20 }
21 //указываем от кого, ÑÐ¾Ð·Ð´Ð°Ð²Ð°Ñ Ð¾Ð±ÑŠÐµÐºÑ‚ MailAdress Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ñ login
22 mail.From = new MailAddress(login);
23 //указываем кому Ð¿Ñ€Ð¾Ð±ÐµÐ³Ð°Ñ Ð² цикле по ÑпиÑку получателÑм
24 for (int i = 0; i < listViewRecipients.Items.Count; i++)
25 {
26 mail.To.Add(new MailAddress(listViewRecipients.Items[i].Text));
27 }
28 //указываем тему и тело пиÑьма из текÑтбокÑов в интерфейÑе
29 mail.Subject = textBoxSubject.Text;
30 mail.Body = textBoxMessage.Text;
31 //Ñто на Ñамом деле еÑли бы надо было делать прикрепление файла, замеÑто null путь до файла бы был, Ñто можно проÑто не пиÑать
32 if (!string.IsNullOrEmpty(null))
33 {
34 mail.Attachments.Add(new Attachment(null));
35 }
36 //Ñоздаем объект клиент Ð´Ð»Ñ Ð¾Ñ‚Ñылки и указываем ему Ñмтп Ñервер, порт и то что Ñто защищенное подключение
37 SmtpClient client = new SmtpClient();
38 client.Host = smtpServer;
39 client.Port = portSmtp;
40 client.EnableSsl = true;//безопаÑное Ñоединение
41 //говорим что иÑпользуем не дефолтные логин и пароль а Ñвои
42 client.UseDefaultCredentials = false;
43 //указываем логин и пароль и метод доÑтавки
44 client.Credentials = new NetworkCredential((login).Split('@')[0], password);
45 client.DeliveryMethod = SmtpDeliveryMethod.Network;
46 //тут пробегаем по получателÑм и добавлÑем их в адреÑную книгу
47 for(int i = 0; i < listViewRecipients.Items.Count; i++)
48 {
49 adresses.adress.Add(listViewRecipients.Items[i].Text);
50 }
51 //ÑохранÑем адреÑную книгу Ñ Ð°Ð´Ñ€ÐµÑами, потому что новые добавили
52 DataSerializator.GetInstance().SaveAdresses(adresses, login);
53 //отÑылаем пиÑьмо
54 client.Send(mail);
55 //уничтожаем пиÑьмо
56 mail.Dispose();
57 }