示例#1
0
        public bool ProcessInternal(Models.RenderedMail mail, ISmtpClient smtpClient = null)
        {
            try
            {
                s_log.Debug("Processing mail item.");

                var smtp = smtpClient ?? new DefaultSmtpClient();

                if (!string.IsNullOrWhiteSpace(s_overrideSmtpHost))
                {
                    smtp.SetHost(s_overrideSmtpHost);
                }
                if (s_overrideSmtpPort.HasValue)
                {
                    smtp.SetPort(s_overrideSmtpPort.Value);
                }
                if (s_overrideSmtpSSL.HasValue)
                {
                    smtp.SetEnableSsl(s_overrideSmtpSSL.Value);
                }
                if (!string.IsNullOrWhiteSpace(s_overrideSmtpUser) ||
                    !string.IsNullOrWhiteSpace(s_overrideSmtpPassword) ||
                    !string.IsNullOrWhiteSpace(s_overrideSmtpDomain))
                {
                    smtp.SetCredentials(
                        s_overrideSmtpDomain,
                        s_overrideSmtpUser,
                        s_overrideSmtpPassword);
                }

                var msg = CreateMailMessage(mail);

                if (!string.IsNullOrWhiteSpace(s_overrideRecipient))
                {
                    msg.To.Clear();
                    msg.To.Add(s_overrideRecipient);
                }

                smtp.Send(msg);

                return(true);
            }
            catch (Exception ex)
            {
                s_log.Error("Error processing mail: " + ex.ToString());
                return(false);
            }
        }
示例#2
0
 public bool Process(Models.RenderedMail mail)
 {
     return(ProcessInternal(mail, m_smtpClient));
 }