public void Send(SendGridMessage message) { var content = GetContent(message); var client = new HttpClient(); var response = client.PostAsync(Endpoint, content).Result; var responseContent = response.Content.ReadAsStringAsync().Result; var result = JsonConvert.DeserializeObject<GenericResult>(responseContent); if (!result.IsSuccess) { throw new SendGridException(result.Errors[0]); } }
public async Task SendAsync(SendGridMessage message) { var content = GetContent(message); var client = new HttpClient(); var response = await client.PostAsync(Endpoint, content); var responseContent = await response.Content.ReadAsStringAsync(); var result = JsonConvert.DeserializeObject<GenericResult>(responseContent); if (!result.IsSuccess) { throw new SendGridException(result.Message); } }
public static void UseTemplateEngine(this SendGridMessage message, string templateId) { message.Header.UseTemplateEngine(templateId); }
public static void UseSubscriptionTrack(this SendGridMessage message, string html, string text, string replace) { message.Header.UseSubscriptionTrack(html, text, replace); }
public static void UseSpamCheck(this SendGridMessage message, double maxscore, string url) { message.Header.UseSpamCheck(maxscore, url); }
public static void UseOpenTrack(this SendGridMessage message) { message.Header.UseOpenTrack(); }
public static void UseGravatar(this SendGridMessage message) { message.Header.UseGravatar(); }
public static void UseGoogleAnalytics(this SendGridMessage message, string source, string medium, string term, string content, string campaign) { message.Header.UseGoogleAnalytics(source, medium, term, content, campaign); }
public static void UseFooter(this SendGridMessage message, string html, string text) { message.Header.UseFooter(html, text); }
public static void UseDomainKeys(this SendGridMessage message, string domain, bool sender) { message.Header.UseDomainKeys(domain, sender); }
public static void UseDkim(this SendGridMessage message, string domain, bool useFrom) { message.Header.UseDkim(domain, useFrom); }
public static void UseBypassListManagement(this SendGridMessage message) { message.Header.UseBypassListManagement(); }
private MultipartFormDataContent GetContent(SendGridMessage message) { var content = new MultipartFormDataContent { { new StringContent(JsonConvert.SerializeObject(message.Headers)), "headers" }, { new StringContent(message.From), "from" }, { new StringContent(message.Subject), "subject" }, { new StringContent(message.Header.ToString()), "x-smtpapi" } }; if (_credentials != null) { content.Add(new StringContent(_credentials.UserName), "api_user"); content.Add(new StringContent(_credentials.Password), "api_key"); } if (message.FromName != null) { content.Add(new StringContent(message.FromName), "fromname"); } if (message.ReplyTo != null) { content.Add(new StringContent(message.ReplyTo), "replyto"); } if (message.Text != null) { content.Add(new StringContent(message.Text), "text"); } if (message.Html != null) { content.Add(new StringContent(message.Html), "html"); } if (message.Date.HasValue) { content.Add(new StringContent(message.Date.Value.ToString("r")), "date"); } foreach (var to in message.To) { content.Add(new StringContent(to), "to[]"); } foreach (var bcc in message.Bcc) { content.Add(new StringContent(bcc), "bcc[]"); } foreach (var cc in message.Cc) { content.Add(new StringContent(cc), "cc[]"); } foreach (var item in message.Files) { content.Add(new StreamContent(item.Value), "files[" + item.Key + "]"); } foreach (var item in message.Content) { content.Add(new StringContent(item.Value), "content[" + item.Key + "]"); } return(content); }
private MultipartFormDataContent GetContent(SendGridMessage message) { var content = new MultipartFormDataContent { { new StringContent(_credentials.UserName), "api_user" }, { new StringContent(_credentials.Password), "api_key" }, { new StringContent(JsonConvert.SerializeObject(message.Headers)), "headers" }, { new StringContent(message.From), "from" }, { new StringContent(message.Subject), "subject" }, { new StringContent(message.Header.ToString()), "x-smtpapi" } }; if (message.FromName != null) { content.Add(new StringContent(message.FromName), "fromname"); } if (message.ReplyTo != null) { content.Add(new StringContent(message.ReplyTo), "replyto"); } if (message.Text != null) { content.Add(new StringContent(message.Text), "text"); } if (message.Html != null) { content.Add(new StringContent(message.Html), "html"); } if (message.Date.HasValue) { content.Add(new StringContent(message.Date.Value.ToString("r")), "date"); } foreach (var to in message.To) { content.Add(new StringContent(to), "to[]"); } foreach (var bcc in message.Bcc) { content.Add(new StringContent(bcc), "bcc[]"); } foreach (var cc in message.Cc) { content.Add(new StringContent(cc), "cc[]"); } foreach (var item in message.Files) { content.Add(new StreamContent(item.Value), "files[" + item.Key + "]"); } foreach (var item in message.Content) { content.Add(new StringContent(item.Value), "content[" + item.Key + "]"); } return content; }
public static void UseBcc(this SendGridMessage message, string email) { message.Header.UseBcc(email); }
public static void UseTemplate(this SendGridMessage message, string html) { message.Header.UseTemplate(html); }
public static void UseForwardSpam(this SendGridMessage message, string email) { message.Header.UseForwardSpam(email); }