示例#1
0
        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());
        }
示例#2
0
        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;
            }
        }
示例#3
0
 protected override void RetypeSmtpPassword(object sender, QueryPasswordEventArgs e)
 {
     Logger.Error("No retype smtp password event in auto save mode.");
     e.Cancel = true;
 }
示例#4
0
 protected abstract void RetypeSmtpPassword(object sender, QueryPasswordEventArgs e);
示例#5
0
 protected override void RetypeSmtpPassword(object sender, QueryPasswordEventArgs e)
 {
     throw new NotImplementedException();
 }