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); }
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(); }
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(); }
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(); } }
private void mnExit_Click(object sender, RoutedEventArgs e) { SendEndWindow sew = new SendEndWindow(); sew.ShowDialog(); }