예제 #1
0
        internal static async Task FromAsync(this MailAddressCollection @this, string emailTemplates, ITransformerService transformer, params object[] transformData)
        {
            if (emailTemplates == null)
            {
                return;
            }

            foreach (var s in emailTemplates.SplitBySeparator())
            {
                if (string.IsNullOrWhiteSpace(s))
                {
                    continue;
                }

                if (s.IsEmail())
                {
                    @this.Add(s);
                    continue;
                }

                var e = await transformer.TransformAsync(s, transformData).ConfigureAwait(false);

                if (string.IsNullOrWhiteSpace(e))
                {
                    continue;
                }

                @this.Add(e);
            }
        }
예제 #2
0
        protected async Task <MailMessage> GetMailMessageAsync(IEmailTemplate template, object[] transformData, params string[] attachments)
        {
            var mail = new MailMessage();

            using (var t = _transformer.BeginSection())
            {
                await Task.WhenAll(
                    mail.To.FromAsync(template.ToEmails, _transformer, transformData),
                    mail.CC.FromAsync(template.CcEmails, _transformer, transformData),
                    mail.Bcc.FromAsync(template.BccEmails, _transformer, transformData)
                    ).ConfigureAwait(false);

                mail.Subject = await _transformer.TransformAsync(template.Subject, transformData).ConfigureAwait(false);

                mail.Body = await _transformer.TransformAsync(template.Body, transformData).ConfigureAwait(false);

                mail.IsBodyHtml = template.IsBodyHtml;
            }
            return(mail);
        }