// Метод отправки сообщения из методички с дополнеными мной измененеиями по ДЗ
 void SendMessage(object sender, RoutedEventArgs e)
 {
     if (CheckUserLogin() && CheckRecepientEmail()) //Проверка корректность заполнения всех Текст боксов
     {
         _emailSendService = new EmailSendServiceClass(_viewMailSender.SubjectTextBx.Text, _viewMailSender.RecipientTextBx.Text, _viewMailSender.MessageTextBx.Text);
         try
         {
             var smtp = new SmtpClient()
             {
                 Host           = WpfTestMailSender.HOST,
                 Port           = WpfTestMailSender.PORT,
                 EnableSsl      = true,
                 DeliveryMethod = SmtpDeliveryMethod.Network,
                 Credentials    = new NetworkCredential(_viewMailSender.LoginTextBx.Text, _viewMailSender.PasswordTextBx.Password)
             };
             using (var message = new MailMessage(_emailSendService._mailfrom, _emailSendService._mailTo)
             {
                 Subject = _emailSendService._subject,
                 Body = _emailSendService._text
             })
             {
                 smtp.Send(message);
             }
             _viewMailSender.ErrTxtBlock.Text       = WpfTestMailSender.MESSAGE_DONE;
             _viewMailSender.ErrTxtBlock.Foreground = Brushes.Green;
             _viewMailSender.ErrTxtBlock.Visibility = Visibility.Visible;
         }
         catch (Exception ex)
         {
             _viewMailSender.ErrTxtBlock.Text       = ex.Message;
             _viewMailSender.ErrTxtBlock.Visibility = Visibility.Visible;
         }
     }
 }
Пример #2
0
 /// <summary>
 /// Отложенная рассылка писем
 /// </summary>
 /// <param name="dtSend">Дата отправки</param>
 /// <param name="emailSender">Рассыльщик</param>
 /// <param name="emails">Адреса получателей</param>
 /// <param name="mailSender">Объект основной формы для обработки заврешения рассылки из другого потока</param>
 public void SendEmails(DateTime dtSend, EmailSendServiceClass emailSender, IQueryable <Email> emails, MailSender mailSender)
 {
     _emailSender = emailSender;
     emailSender.ShowResultOfSend += mailSender.SendEndWindowCreate;
     _dtSend         = dtSend;
     _emails         = emails;
     _timer.Tick    += TimerOnTick;
     _timer.Interval = new TimeSpan(0, 0, 1);
     _timer.Start();
 }
Пример #3
0
        private void SendAtOnce()
        {
            var strLogin    = cbSenderSelect.Text;
            var strPassword = cbSenderSelect.SelectedValue.ToString();

            if (string.IsNullOrEmpty(strLogin))
            {
                MessageBox.Show("Выберите отправителя");
                return;
            }
            if (string.IsNullOrEmpty(strPassword))
            {
                MessageBox.Show("Укажите пароль отправителя");
                return;
            }
            var emailSender = new EmailSendServiceClass(strLogin, strPassword);

            emailSender.SendMails(locator.Main.Emails);
        }
Пример #4
0
        private void btnSendEmail_Click(object sender, RoutedEventArgs e)
        {
            List <string> listStrMails = new List <string> {
                "*****@*****.**", "*****@*****.**"
            };                                          // Список email'ов //кому мы отправляем письмо
            string strPassword = passwordBox.Password;  // для WinForms - string strPassword = passwordBox.Text;
            EmailSendServiceClass emailSend = new EmailSendServiceClass(listStrMails);

            emailSend.SendMail(WpfTestMailSender.mail, strPassword, TexBox_Name.Text, TexBox_Text.Text);
            //foreach (string mail in listStrMails)
            //{
            //    // Используем using, чтобы гарантированно удалить объект MailMessage после использования
            //    using (MailMessage mm = new MailMessage(WpfTestMailSender.from, mail))
            //    {
            //        // Формируем письмо
            //        mm.Subject = WpfTestMailSender.subject; // Заголовок письма
            //        mm.Body = WpfTestMailSender.body;       // Тело письма
            //        mm.IsBodyHtml = false;           // Не используем html в теле письма
            //                                         // Авторизуемся на smtp-сервере и отправляем письмо
            //                                         // Оператор using гарантирует вызов метода Dispose, даже если при вызове
            //                                         // методов в объекте происходит исключение.
            //        using (SmtpClient sc = new SmtpClient(WpfTestMailSender.smtp, WpfTestMailSender.port))
            //        {
            //            sc.EnableSsl = true;
            //            sc.Credentials = new NetworkCredential(WpfTestMailSender.mail, strPassword);
            //            try
            //            {
            //                sc.Send(mm);
            //            }
            //            catch (Exception ex)
            //            {
            //                MessageBox.Show("Невозможно отправить письмо " + ex.ToString());
            //            }
            //        }
            //    } //using (MailMessage mm = new MailMessage("*****@*****.**", mail))
            //}
            ////MessageBox.Show("Работа завершена.");
            //SendEndWindow sew = new SendEndWindow();
            //sew.ShowDialog();
        }
Пример #5
0
        private void Send()
        {
            var sc         = new SchedulerClass();
            var tsSendTime = sc.GetSendTime(tbTimePicker.Text);

            if (tsSendTime == new TimeSpan())
            {
                MessageBox.Show("Некорректный формат даты");
                return;
            }
            var dtSendDateTime = (cldSchedulDateTimes.SelectedDate ??
                                  DateTime.Today).Add(tsSendTime);

            if (dtSendDateTime < DateTime.Now)
            {
                MessageBox.Show("Дата и время отправки писем не могут быть раньше, чем настоящее время");
                return;
            }
            var emailSender = new EmailSendServiceClass(cbSenderSelect.Text,
                                                        cbSenderSelect.SelectedValue.ToString());

            sc.SendEmails(dtSendDateTime, emailSender, locator.Main.Emails);
        }
Пример #6
0
        private void BtnSend_Click(object sender, RoutedEventArgs e)
        {
            SchedulerClass sc         = new SchedulerClass();
            TimeSpan       tsSendTime = sc.GetSendTime(tbTimePicker.Text);

            if (tsSendTime == new TimeSpan())
            {
                MessageBox.Show("Некоректный формат даты");
                return;
            }
            DateTime dtSendTime = (cldSchedulDateTimes.SelectedDate ?? DateTime.Today).Add(tsSendTime);

            if (dtSendTime < DateTime.Now)
            {
                MessageBox.Show("Дата и время отправки не могут быть раньше, чем настоящее время!");
                return;
            }
            EmailSendServiceClass emailSender = new EmailSendServiceClass(cbSenderSelect.Text,
                                                                          cbSenderSelect.SelectedValue.ToString(), BodyPost.Text, SubjectPost.Text, cbSmtpSelect.Text,
                                                                          int.Parse(((KeyValuePair <string, int>)cbSenderSelect.SelectedItem).Value.ToString()));
            var locator = (ViewModelLocator)FindResource("Locator");

            sc.SendEmails(emailSender, locator.Main.Emails);
        }