private ActionResult SendEmail(IJob job, SmtpClient smtp, MailMessage mail) { var credentials = new NetworkCredential(job.Profile.EmailSmtp.UserName, job.Passwords.SmtpPassword); smtp.Credentials = credentials; try { smtp.Send(mail); } catch (SmtpFailedRecipientsException ex) { Logger.Error("The message could not be delivered to one or more of the recipients\r\n" + ex.Message); mail.Dispose(); return(new ActionResult(ActionId, 106)); } catch (SmtpException ex) { Logger.Warn("Could not authorize to host.\r\n" + ex.Message); if (QueryRetypeSmtpPassword == null) { Logger.Error("SendMailOverSmtp canceled. No Retype Smtp Password specified."); mail.Dispose(); return(new ActionResult(ActionId, 107)); } var queryPassword = new QueryPasswordEventArgs(job); QueryRetypeSmtpPassword(this, queryPassword); if (!queryPassword.Cancel) { return(SendEmail(job, smtp, mail)); } Logger.Warn("User canceled setting SMTP e-mail Password, SendMailOverSmtp canceled"); mail.Dispose(); return(new ActionResult(ActionId, 108)); } catch (Exception ex) { Logger.Error("Exception while sending mail over smtp:\r\n" + ex.Message); mail.Dispose(); return(new ActionResult(ActionId, 109)); } mail.Dispose(); return(new ActionResult()); }
protected override void RetypeSmtpPassword(object sender, QueryPasswordEventArgs e) { Logger.Debug("Launched E-mail password Form"); var pwWindow = new SmtpPasswordWindow(SmtpPasswordMiddleButton.None, Job.Profile.EmailSmtp.Address, Job.Profile.EmailSmtp.Recipients); pwWindow.SmtpPassword = Job.Passwords.SmtpPassword; pwWindow.Message = _translator.GetTranslation("InteractiveWorkflow", "RetypeSmtpPwMessage", "Could not authenticate at server.\r\nPlease check your password and verify that you have a working internet connection."); if (pwWindow.ShowDialogTopMost() == SmtpPasswordResponse.OK) { Job.Passwords.SmtpPassword = pwWindow.SmtpPassword; e.Cancel = false; } else { e.Cancel = true; Logger.Warn("Cancelled the SMTP dialog. No PDF will be created."); WorkflowStep = WorkflowStep.AbortedByUser; } }
protected override void RetypeSmtpPassword(object sender, QueryPasswordEventArgs e) { Logger.Error("No retype smtp password event in auto save mode."); e.Cancel = true; }
protected abstract void RetypeSmtpPassword(object sender, QueryPasswordEventArgs e);
protected override void RetypeSmtpPassword(object sender, QueryPasswordEventArgs e) { throw new NotImplementedException(); }