示例#1
0
        private SendGridMessage GetSendGridMessage(List <EmailInfoItem> batch, EmailAddress from,
                                                   SendGridAccount sendGridAccount, EmailInfo emailInfo)
        {
            var sendGridMessage = new SendGridMessage();

            sendGridMessage.SetFrom(from);

            if (emailInfo.TemplateData != null)
            {
                sendGridMessage.TemplateId = sendGridAccount.TemplateId;
            }
            else
            {
                sendGridMessage.SetGlobalSubject(emailInfo.Subject);

                if (!string.IsNullOrEmpty(emailInfo.PlainTextContent))
                {
                    sendGridMessage.AddContent(MimeType.Text, emailInfo.PlainTextContent);
                }

                if (!string.IsNullOrEmpty(emailInfo.HtmlContent))
                {
                    sendGridMessage.AddContent(MimeType.Html, emailInfo.HtmlContent);
                }
            }

            for (var personalizationIndex = 0; personalizationIndex < batch.Count; ++personalizationIndex)
            {
                var emailInfoItem = batch[personalizationIndex];

                var to = GetEmailAddress(emailInfoItem);
                sendGridMessage.AddTo(to, personalizationIndex);

                if (emailInfo.TemplateData != null)
                {
                    sendGridMessage.SetTemplateData(emailInfo.TemplateData, personalizationIndex);
                }

                if (emailInfoItem.Email != null)
                {
                    sendGridMessage.AddCustomArg("EmailId", emailInfoItem.Email.Id.ToString(), personalizationIndex);
                }
            }

            if (emailInfo.SendAt != null)
            {
                sendGridMessage.SendAt = new DateTimeOffset(emailInfo.SendAt.Value).ToUnixTimeSeconds();
            }

            if (emailInfo.AttachmentName != null)
            {
                sendGridMessage.AddAttachment(emailInfo.AttachmentName, emailInfo.AttachmentBase64Content);
            }

            return(sendGridMessage);
        }
 public AccountController(UserManager <AppUser> userManager, SignInManager <AppUser> signInManager,
                          AppDbContext context, IToastNotification toastNotification,
                          IOptions <SendGridAccount> userOptions, IStringLocalizer <AccountController> localizer)
 {
     _context           = context;
     _localizer         = localizer;
     _userManager       = userManager;
     _signInManager     = signInManager;
     _toastNotification = toastNotification;
     _userOptions       = userOptions.Value;
 }
示例#3
0
        private async Task Send(SendGridAccount sendGridAccount, SendGridMessage sendGridMessage)
        {
            var client = new SendGridClient(sendGridAccount.ApiKey);

            var response = await client.SendEmailAsync(sendGridMessage);

            if (response.StatusCode >= HttpStatusCode.Ambiguous)
            {
                var errorMessage = await GetErrorMessage(response);

                throw new Exception(errorMessage);
            }
        }
 public SendGridWebApiClient(SendGridAccount account)
 {
     _account = account;
 }
示例#5
0
 internal Filters(SendGridAccount account)
     : base(account, "filters")
 {
 }
示例#6
0
 internal Emails(SendGridAccount account)
     : base(account, "lists", "email")
 {
 }
示例#7
0
 public EmailService(IOptions <SendGridAccount> account)
 {
     _account = account.Value ?? throw new ArgumentNullException(nameof(account));
 }
 public MarketingEmailsApiClient(SendGridAccount account)
 {
     _account = account;
 }
示例#9
0
 public EmailService(IOptions <SendGridAccount> account) // startuptan bıraya getiriyoruz.
 {
     _account = account.Value ?? throw new ArgumentNullException(nameof(account));
 }
示例#10
0
 internal Schedule(SendGridAccount account)
     : base(account, "schedule")
 {
 }
示例#11
0
 internal Recipients(SendGridAccount account)
     : base(account, "recipients")
 {
 }
示例#12
0
 internal Identity(SendGridAccount account)
     : base(account, "identity")
 {
 }
示例#13
0
 public EnforcedTls(SendGridAccount account)
     : base(account)
 {
 }
示例#14
0
 internal SpamReports(SendGridAccount account)
     : base(account, "spamreports")
 {
 }
示例#15
0
 internal Credentials(SendGridAccount account)
     : base(account, "credentials")
 {
 }
示例#16
0
 internal Settings(SendGridAccount account)
 {
     _account = account;
 }
示例#17
0
 internal IpManagement(SendGridAccount account)
     : base(account)
 {
 }
示例#18
0
 internal TemplateEngine(SendGridAccount account)
 {
     _account = account;
 }
示例#19
0
 internal MarketingEmails(SendGridAccount account)
     : base(account)
 {
 }
示例#20
0
 internal WebApiHandler(SendGridAccount account, bool useV3)
     : base(new HttpClientHandler())
 {
     _account = account;
     _useV3 = useV3;
 }
示例#21
0
 internal Unsubscribes(SendGridAccount account)
     : base(account, "unsubscribes")
 {
 }
示例#22
0
 internal Profile(SendGridAccount account)
     : base(account, "profile")
 {
 }
示例#23
0
 internal Mail(SendGridAccount account)
     : base(account, "mail")
 {
 }
示例#24
0
 internal ParseWebhook(SendGridAccount account)
     : base(account, "parse")
 {
 }
示例#25
0
 internal Bounces(SendGridAccount account)
     : base(account, "bounces")
 {
 }
 internal AdvancedSuppressionManager(SendGridAccount account)
     : base(account)
 {
 }
示例#27
0
 internal Lists(SendGridAccount account)
     : base(account, "lists")
 {
 }
示例#28
0
 internal Blocks(SendGridAccount account)
     : base(account, "blocks")
 {
 }
示例#29
0
 internal Timezone(SendGridAccount account)
     : base(account, "timezone")
 {
 }
示例#30
0
 internal InvalidEmails(SendGridAccount account)
     : base(account, "invalidemails")
 {
 }
示例#31
0
 internal Categories(SendGridAccount account)
     : base(account, "categories")
 {
 }
示例#32
0
 internal Variations(SendGridAccount account)
     : base(account, "variations")
 {
 }