예제 #1
0
 public void Send(IEmailContent email)
 {
     MailMessage mailmsg = new MailMessage();
     IEnumerable<MailAddress> rec = email.GetReceivers();
     if (rec == null || !rec.Any()) return;
     rec.Each(mailmsg.To.Add);
     var cc = email.GetCCReceivers();
     if (cc != null)
     {
         cc.Each(mailmsg.CC.Add);
     }
     var bcc = email.GetBCCReceivers();
     if (bcc != null)
     {
         bcc.Each(mailmsg.Bcc.Add);
     }
     var attachments = email.GetAttachments();
     if (attachments != null)
     {
         attachments.Each(mailmsg.Attachments.Add);
     }
     mailmsg.Subject = email.GetSubject();
     mailmsg.Body = email.GetBody();
     mailmsg.BodyEncoding = Encoding.UTF8;
     mailmsg.IsBodyHtml = email.IsBodyHtml();
     mailmsg.From = email.GetSender();
     mailmsg.Priority = MailPriority.Normal;
     var smtp = email.GetSmtpClient();
     smtp.Send(mailmsg);
     mailmsg.Attachments.Each(m => m.Dispose());
     mailmsg.Dispose();
     smtp.Dispose();
     email.OnSendComplete(email);
 }
예제 #2
0
 public AccountEmailFactory(IEmailFactory emailFactory,
                            IEmailConfiguration emailConfiguration,
                            IAccountRepository accountRepository,
                            IUnregisteredUserRepository unregisteredUserRepository,
                            IEmailContent emailContent)
 {
     _emailFactory               = emailFactory;
     _emailConfiguration         = emailConfiguration;
     _accountRepository          = accountRepository;
     _unregisteredUserRepository = unregisteredUserRepository;
     _emailContent               = emailContent;
 }
예제 #3
0
        public Task <IEmailResponse> SendSingleEmailAsync(IEmailContent email)
        {
            var breaker = Environment.NewLine;

            _logger.LogInformation(
                $"Email was sent{breaker}" +
                $"Subject: {email.Subject}{breaker}" +
                $"Recipients: {email.Recipients.Count}{breaker}" +
                $"Cc: {email.Cc.Count}{breaker}" +
                $"Bcc: {email.HiddenCc.Count}{breaker}");

            return(Task.FromResult((IEmailResponse) new LocalEmailResponse()));
        }
예제 #4
0
 public SurveyEmailFactory(IEmailConfiguration emailConfiguration,
                           IEmailFactory emailFactory,
                           IAccountRepository accountRepository,
                           ISurveyUserIdentifierService surveyUserIdentifierService,
                           IUnregisteredUserRepository unregisteredUserRepository,
                           IEmailContent emailContent)
 {
     _surveyUserIdentifierService = surveyUserIdentifierService;
     _emailConfiguration          = emailConfiguration;
     _emailFactory               = emailFactory;
     _accountRepository          = accountRepository;
     _unregisteredUserRepository = unregisteredUserRepository;
     _emailContent               = emailContent;
 }
예제 #5
0
        private SendGridMessage Message(IEmailContent email)
        {
            SendGridMessage msg = MailHelper.CreateSingleEmailToMultipleRecipients(
                @from: new EmailAddress(email.From),
                tos: email.Recipients.Select(x => new EmailAddress(x)).ToList(),
                subject: email.Subject,
                plainTextContent: string.Empty,
                htmlContent: email.Body);

            if (email.Cc.Any())
            {
                msg.AddCcs(email.Cc.Select(x => new EmailAddress(x)).ToList());
            }

            return(msg);
        }
예제 #6
0
        public void Send(IEmailContent email)
        {
            MailMessage mailmsg           = new MailMessage();
            IEnumerable <MailAddress> rec = email.GetReceivers();

            if (rec == null || !rec.Any())
            {
                return;
            }
            rec.Each(mailmsg.To.Add);
            var cc = email.GetCCReceivers();

            if (cc != null)
            {
                cc.Each(mailmsg.CC.Add);
            }
            var bcc = email.GetBCCReceivers();

            if (bcc != null)
            {
                bcc.Each(mailmsg.Bcc.Add);
            }
            var attachments = email.GetAttachments();

            if (attachments != null)
            {
                attachments.Each(mailmsg.Attachments.Add);
            }
            mailmsg.Subject      = email.GetSubject();
            mailmsg.Body         = email.GetBody();
            mailmsg.BodyEncoding = Encoding.UTF8;
            mailmsg.IsBodyHtml   = email.IsBodyHtml();
            mailmsg.From         = email.GetSender();
            mailmsg.Priority     = MailPriority.Normal;
            var smtp = email.GetSmtpClient();

            smtp.Send(mailmsg);
            mailmsg.Attachments.Each(m => m.Dispose());
            mailmsg.Dispose();
            smtp.Dispose();
            email.OnSendComplete(email);
        }
예제 #7
0
        public async Task <Response> SendSingleEmailAsync(IEmailContent email)
        {
            email.ThrowIfNull(nameof(email));

            return(await _client.SendEmailAsync(Message(email)));
        }
예제 #8
0
 public virtual void OnSendComplete(IEmailContent content)
 {
 }
예제 #9
0
 public virtual void OnSendComplete(IEmailContent content)
 {
 }
예제 #10
0
 public EmailTemplate(IEmailContent content)
 {
     _content = content;
 }
예제 #11
0
 public Task <IEmailResponse> SendSingleEmailAsync(IEmailContent email)
 {
     return(Task.FromResult((IEmailResponse) new LocalEmailResponse()));
 }