private static async Task KitchenSink()
{
String apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User);
dynamic sg = new SendGrid.SendGridAPIClient(apiKey, "https://api.sendgrid.com");
Mail mail = new Mail();
Email email = new Email();
email.Name = "Example User";
email.Address = "[email protected]";
mail.From = email;
mail.Subject = "Hello World from the SendGrid CSharp Library";
Personalization personalization = new Personalization();
email = new Email();
email.Name = "Example User";
email.Address = "[email protected]";
personalization.AddTo(email);
email = new Email();
email.Name = "Example User";
email.Address = "[email protected]";
personalization.AddCc(email);
email = new Email();
email.Name = "Example User";
email.Address = "[email protected]";
personalization.AddCc(email);
email = new Email();
email.Name = "Example User";
email.Address = "[email protected]";
personalization.AddBcc(email);
email = new Email();
email.Name = "Example User";
email.Address = "[email protected]";
personalization.AddBcc(email);
personalization.Subject = "Thank you for signing up, %name%";
personalization.AddHeader("X-Test", "True");
personalization.AddHeader("X-Mock", "True");
personalization.AddSubstitution("%name%", "Example User");
personalization.AddSubstitution("%city%", "Denver");
personalization.AddCustomArgs("marketing", "false");
personalization.AddCustomArgs("transactional", "true");
personalization.SendAt = 1461775051;
mail.AddPersonalization(personalization);
personalization = new Personalization();
email = new Email();
email.Name = "Example User";
email.Address = "[email protected]";
personalization.AddTo(email);
email = new Email();
email.Name = "Example User";
email.Address = "[email protected]";
personalization.AddCc(email);
email = new Email();
email.Name = "Example User";
email.Address = "[email protected]";
personalization.AddCc(email);
email = new Email();
email.Name = "Example User";
email.Address = "[email protected]";
personalization.AddBcc(email);
email = new Email();
email.Name = "Example User";
email.Address = "[email protected]";
personalization.AddBcc(email);
personalization.Subject = "Thank you for signing up, %name%";
personalization.AddHeader("X-Test", "True");
personalization.AddHeader("X-Mock", "True");
personalization.AddSubstitution("%name%", "Example User");
personalization.AddSubstitution("%city%", "Denver");
personalization.AddCustomArgs("marketing", "false");
personalization.AddCustomArgs("transactional", "true");
personalization.SendAt = 1461775051;
mail.AddPersonalization(personalization);
Content content = new Content();
content.Type = "text/plain";
content.Value = "Textual content";
mail.AddContent(content);
content = new Content();
content.Type = "text/html";
content.Value = "<html><body>HTML content</body></html>";
mail.AddContent(content);
content = new Content();
content.Type = "text/calendar";
content.Value = "Party Time!!";
mail.AddContent(content);
Attachment attachment = new Attachment();
attachment.Content = "TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gQ3JhcyBwdW12";
attachment.Type = "application/pdf";
attachment.Filename = "balance_001.pdf";
attachment.Disposition = "attachment";
attachment.ContentId = "Balance Sheet";
mail.AddAttachment(attachment);
attachment = new Attachment();
attachment.Content = "BwdW";
attachment.Type = "image/png";
attachment.Filename = "banner.png";
attachment.Disposition = "inline";
attachment.ContentId = "Banner";
mail.AddAttachment(attachment);
mail.TemplateId = "13b8f94f-bcae-4ec6-b752-70d6cb59f932";
mail.AddHeader("X-Day", "Monday");
mail.AddHeader("X-Month", "January");
mail.AddSection("%section1", "Substitution for Section 1 Tag");
mail.AddSection("%section2", "Substitution for Section 2 Tag");
mail.AddCategory("customer");
mail.AddCategory("vip");
mail.AddCustomArgs("campaign", "welcome");
mail.AddCustomArgs("sequence", "2");
ASM asm = new ASM();
asm.GroupId = 3;
List<int> groups_to_display = new List<int>()
{
1, 4, 5
};
asm.GroupsToDisplay = groups_to_display;
mail.Asm = asm;
mail.SendAt = 1461775051;
mail.SetIpPoolId = "23";
// This must be a valid [batch ID](https://sendgrid.com/docs/API_Reference/SMTP_API/scheduling_parameters.html)
// mail.BatchId = "some_batch_id";
MailSettings mailSettings = new MailSettings();
BCCSettings bccSettings = new BCCSettings();
bccSettings.Enable = true;
bccSettings.Email = "[email protected]";
mailSettings.BccSettings = bccSettings;
BypassListManagement bypassListManagement = new BypassListManagement();
bypassListManagement.Enable = true;
mailSettings.BypassListManagement = bypassListManagement;
FooterSettings footerSettings = new FooterSettings();
footerSettings.Enable = true;
footerSettings.Text = "Some Footer Text";
footerSettings.Html = "<bold>Some HTML Here</bold>";
mailSettings.FooterSettings = footerSettings;
SandboxMode sandboxMode = new SandboxMode();
sandboxMode.Enable = true;
mailSettings.SandboxMode = sandboxMode;
SpamCheck spamCheck = new SpamCheck();
spamCheck.Enable = true;
spamCheck.Threshold = 1;
spamCheck.PostToUrl = "https://gotchya.example.com";
mailSettings.SpamCheck = spamCheck;
mail.MailSettings = mailSettings;
TrackingSettings trackingSettings = new TrackingSettings();
ClickTracking clickTracking = new ClickTracking();
clickTracking.Enable = true;
clickTracking.EnableText = false;
trackingSettings.ClickTracking = clickTracking;
OpenTracking openTracking = new OpenTracking();
openTracking.Enable = true;
openTracking.SubstitutionTag = "Optional tag to replace with the open image in the body of the message";
trackingSettings.OpenTracking = openTracking;
SubscriptionTracking subscriptionTracking = new SubscriptionTracking();
subscriptionTracking.Enable = true;
subscriptionTracking.Text = "text to insert into the text/plain portion of the message";
subscriptionTracking.Html = "<bold>HTML to insert into the text/html portion of the message</bold>";
subscriptionTracking.SubstitutionTag = "text to insert into the text/plain portion of the message";
trackingSettings.SubscriptionTracking = subscriptionTracking;
Ganalytics ganalytics = new Ganalytics();
ganalytics.Enable = true;
ganalytics.UtmCampaign = "some campaign";
ganalytics.UtmContent = "some content";
ganalytics.UtmMedium = "some medium";
ganalytics.UtmSource = "some source";
ganalytics.UtmTerm = "some term";
trackingSettings.Ganalytics = ganalytics;
mail.TrackingSettings = trackingSettings;
email = new Email();
email.Address = "[email protected]";
mail.ReplyTo = email;
dynamic response = await sg.client.mail.send.post(requestBody: mail.Get());
Console.WriteLine(response.StatusCode);
Console.WriteLine(response.Body.ReadAsStringAsync().Result);
Console.WriteLine(response.Headers.ToString());
Console.WriteLine(mail.Get());
Console.ReadLine();
}