Inheritance: IEmailSender
示例#1
0
        // ReSharper disable TooManyArguments
        string SendEmail(EmailSource runtimeSource, IWarewolfListIterator colItr, IWarewolfIterator fromAccountItr, IWarewolfIterator passwordItr, IWarewolfIterator toItr, IWarewolfIterator ccItr, IWarewolfIterator bccItr, IWarewolfIterator subjectItr, IWarewolfIterator bodyItr, IWarewolfIterator attachmentsItr, out ErrorResultTO errors)
        // ReSharper restore TooManyArguments
        {
            errors = new ErrorResultTO();
            var          fromAccountValue = colItr.FetchNextValue(fromAccountItr);
            var          passwordValue    = colItr.FetchNextValue(passwordItr);
            var          toValue          = colItr.FetchNextValue(toItr);
            var          ccValue          = colItr.FetchNextValue(ccItr);
            var          bccValue         = colItr.FetchNextValue(bccItr);
            var          subjectValue     = colItr.FetchNextValue(subjectItr);
            var          bodyValue        = colItr.FetchNextValue(bodyItr);
            var          attachmentsValue = colItr.FetchNextValue(attachmentsItr);
            MailMessage  mailMessage      = new MailMessage();
            MailPriority priority;

            if (Enum.TryParse(Priority.ToString(), true, out priority))
            {
                mailMessage.Priority = priority;
            }
            mailMessage.Subject = subjectValue;
            AddToAddresses(toValue, mailMessage);
            try
            {
                // Always use source account unless specifically overridden by From Account
                if (!string.IsNullOrEmpty(fromAccountValue))
                {
                    runtimeSource.UserName = fromAccountValue;
                    runtimeSource.Password = passwordValue;
                }
                mailMessage.From = new MailAddress(runtimeSource.UserName);
            }
            catch (Exception)
            {
                errors.AddError(string.Format("From address is not in the valid format: {0}", fromAccountValue));
                return("Failure");
            }
            mailMessage.Body = bodyValue;
            if (!String.IsNullOrEmpty(ccValue))
            {
                AddCcAddresses(ccValue, mailMessage);
            }
            if (!String.IsNullOrEmpty(bccValue))
            {
                AddBccAddresses(bccValue, mailMessage);
            }
            if (!String.IsNullOrEmpty(attachmentsValue))
            {
                AddAttachmentsValue(attachmentsValue, mailMessage);
            }
            string result;

            try
            {
                EmailSender.Send(runtimeSource, mailMessage);
                result = "Success";
            }
            catch (Exception e)
            {
                result = "Failure";
                errors.AddError(e.Message);
            }

            return(result);
        }