private void ButtonSend_Click(object sender, RoutedEventArgs e)
 {
     //MessageBox.Show(TestPassword.SecurePassword.ToString());
     if (TestAdress.Text == string.Empty || TestPassword.SecurePassword.Length == 0 || MessageText.Text == string.Empty)
     {
         //https://social.msdn.microsoft.com/Forums/vstudio/ru-RU/c315d637-12da-4383-b598-e252363515dc/disable-button-if-passwordbox-is-empty?forum=wpf
         SendEndWindow result = new SendEndWindow();
         result.Show("Укажите данные Тестового отправителя на вкладке Планировщик, а также текст сообщения на вкладке Письма!!");
     }
     else
     {
         new EmailSendServiceClass(new MailSenderLib.Entities.Server(TestServer.SelectedItem as Server)
         {
             UserName = TestAdress.Text, Password = TestPassword.SecurePassword
         },
                                   LettersList.SelectedItem as Email,
                                   new SendEndWindow()).Send(new List <string>()
         {
             TestAdress.Text
         });
     }
     //string strLogin = cbSenderSelect.Text;
     // string strPassword = cbSenderSelect.SelectedValue.ToString();
     //  if (string.IsNullOrEmpty(strLogin))
     // { MessageBox.Show("Выберите отправителя"); return; }
     // if (string.IsNullOrEmpty(strPassword))
     //  { MessageBox.Show("Укажите пароль отправителя"); return; }
     //  EmailSendServiceClass emailSender = new EmailSendServiceClass(strLogin, strPassword);
     //  emailSender.SendMails((IQueryable<Email>)dgEmails.ItemsSource);
 }
예제 #2
0
        private void BtnSendEmail_Click(object sender, RoutedEventArgs e)
        {
            senderServer = Test.Servers.FirstOrDefault(server => server.Name == cbMail.SelectedItem.ToString());
            string senderMail = txbEmail.Text + senderServer.Name;

            string strPassword = passwordBox.Password;  // для WinForms - string strPassword = passwordBox.Text;

            foreach (string mail in listStrMails)
            {
                // Используем using, чтобы гарантированно удалить объект MailMessage после использования
                using (MailMessage mm = new MailMessage(senderMail, mail))
                {
                    // Формируем письмо
                    mm.Subject    = txbTopic.Text;   // Заголовок письма
                    mm.Body       = txbMessage.Text; // Тело письма
                    mm.IsBodyHtml = false;           // Не используем html в теле письма
                                                     // Авторизуемся на smtp-сервере и отправляем письмо
                                                     // Оператор using гарантирует вызов метода Dispose, даже если при вызове
                                                     // методов в объекте происходит исключение.

                    using (SmtpClient sc = new SmtpClient(senderServer.Address, senderServer.Port))
                    {
                        sc.EnableSsl   = true;
                        sc.Credentials = new NetworkCredential(senderMail, strPassword);
                        try
                        {
                            sc.Send(mm);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Невозможно отправить письмо " + ex.ToString());
                        }
                    }
                } //using (MailMessage mm = new MailMessage("*****@*****.**", mail))
            }
            SendEndWindow sew = new SendEndWindow();

            sew.ShowDialog();
        }
예제 #3
0
        private void BtnSendEmail_Click(object sender, RoutedEventArgs e)
        {
            // Список адресов для рассылки.
            List <string> listStrMails = Constants.listStrMails;

            string strPassword = passwordBox.Password;
            string senderEmail = Constants.SENDER_EMAIL;

            string subject = tbSubject.Text;
            string body    = tbBody.Text;

            foreach (string recieverEmail in listStrMails)
            {
                var mail = new EmailSendService();
                mail.Send(senderEmail, strPassword, recieverEmail, subject, body);
            }

            SendEndWindow sew = new SendEndWindow
            {
                Owner = this
            };

            sew.ShowDialog();
        }
예제 #4
0
        private void BtnSendEmail_Click(object sender, RoutedEventArgs e)
        {
            var SendService = new MailSenderService();

            // Givers
            List <string> listStrMails = new List <string>();

            listStrMails.Add(tbxSender.Text);

            // Sender
            string strSender = tbxSender.Text;
            var    password  = passwordBox.SecurePassword;

            // Email
            string title = txtBxEmailTitle.Text; // Email title / Тема
            //string body = txtBxEmailBody.Text;   // Email body / Текст
            string body;

            #region RichTextBox
            // Create Stream for text
            using (var stream = new MemoryStream(100))
            {
                // Get text from RichTextBox
                TextRange range = new TextRange(rchTxtBxEmailBody.Document.ContentStart,
                                                rchTxtBxEmailBody.Document.ContentEnd);


                // Save text to stream
                range.Save(stream, DataFormats.Text);

                // Set seek to begin
                stream.Seek(0, SeekOrigin.Begin);

                // Create Reader from stream
                var reader = new StreamReader(stream);

                // Convert stream to string
                body = reader.ReadToEnd();
            }
            body = body.Trim();

            if (body == string.Empty)
            {
                var eW = new ErrorWindow("Письмо не заполнено, переход в редактор писем.");
                eW.ShowDialog();
                MainTabControl.SelectedIndex = 2;
                return;
            }

            #endregion

            // every time null
            if (lcSmtpServer.SelectedItem == null)
            {
                var eW = new ErrorWindow("Smtp-server не указан.");
                eW.ShowDialog();
                MainTabControl.SelectedIndex = 0;
                return;
            }
            if (!(lcSmtpServer.SelectedItem is Server smtp))
            {
                var eW = new ErrorWindow("Ошибка в данных, передан не smtp-server.");
                eW.ShowDialog();
                MainTabControl.SelectedIndex = 0;
                return;
            }

            string FullAddress = smtp.FullAddress;
            var    arr         = FullAddress.Split(':');

            StringBuilder strB = new StringBuilder();

            foreach (var str in arr)
            {
                strB.Append(str);
            }
            string smtpUrl = strB.ToString(0, strB.Length - arr.Last().Length);
            int    smtpPort;

            if (!(int.TryParse(arr.Last(), out smtpPort)))
            {
                var eW = new ErrorWindow(string.Format(
                                             "Порт smpt сервера {0} указан неверно.", smtpUrl));
                return;
            }


            // Времменно отключена отправка для тестирования
            //return;

            try
            {
                var results = SendService.SmtpSendMessages(strSender, password,
                                                           smtpUrl, smtpPort, title, body, listStrMails);


                for (int i = 0; i < results.Count; i++)
                {
                    if (!results[i])
                    {
                        var eW = new ErrorWindow(string.Format(
                                                     "Ошибка письмо до {0} не отправлено.", listStrMails[i]));
                        eW.ShowDialog();
                    }
                }

                SendEndWindow sew = new SendEndWindow();
                sew.ShowDialog();
            }
            catch (ArgumentException ae)
            {
                string errMsg = string.Empty;
                if (ae.ParamName == "from")
                {
                    errMsg = "Email адрес отправителя не указан.";
                }
                else
                {
                    throw;
                }

                var eW = new ErrorWindow(errMsg);
                eW.ShowDialog();
            }
            catch (FormatException fe)
            {
                var eW = new ErrorWindow(fe.Message);
                eW.ShowDialog();
            }
        }
예제 #5
0
        private void mnExit_Click(object sender, RoutedEventArgs e)
        {
            SendEndWindow sew = new SendEndWindow();

            sew.ShowDialog();
        }