Created
June 30, 2017 05:22
-
-
Save heimdallrj/e5bebc323391fce4ad9e43aba7f36307 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// function helloEmail(){ | |
// var helper = require('sendgrid').mail | |
// from_email = new helper.Email("[email protected]") | |
// to_email = new helper.Email("[email protected]") | |
// subject = "Hello World from the SendGrid Node.js Library" | |
// content = new helper.Content("text/plain", "some text here") | |
// mail = new helper.Mail(from_email, subject, to_email, content) | |
// email = new helper.Email("[email protected]") | |
// mail.personalizations[0].addTo(email) | |
// return mail.toJSON() | |
// } | |
// ---- | |
var helper = require('sendgrid').mail; | |
mail = new helper.Mail(); | |
// to emails | |
var email = new helper.Email("[email protected]", "Example User1"); | |
mail.setFrom(email); | |
mail.setSubject("Hello World from the SendGrid Node.js Library"); | |
var personalization = new helper.Personalization(); | |
var email = new helper.Email("[email protected]", "Example User2"); | |
personalization.addTo(email); | |
var substitution = new helper.Substitution("%name%", "Example User"); | |
personalization.addSubstitution(substitution); | |
mail.addPersonalization(personalization); | |
var content = new helper.Content("text/html", "<html><body>some text here</body></html>"); | |
mail.addContent(content); | |
mail.setTemplateId("439b6d66-4408-4ead-83de-5c83c2ee313a"); | |
var mailObj = mail.toJSON(); | |
console.log(JSON.stringify(mailObj, null, 2)); | |
var sg = require('sendgrid')(process.env.SENDGRID_API_KEY) | |
var requestBody = mailObj | |
var emptyRequest = require('sendgrid-rest').request | |
var requestPost = JSON.parse(JSON.stringify(emptyRequest)) | |
requestPost.method = 'POST' | |
requestPost.path = '/v3/mail/send' | |
requestPost.body = requestBody | |
sg.API(requestPost, function (error, response) { | |
console.log(response.statusCode) | |
console.log(response.body) | |
console.log(response.headers) | |
}) | |
// --- | |
function kitchenSink(){ | |
var helper = require('sendgrid').mail | |
mail = new helper.Mail() | |
email = new helper.Email("[email protected]", "Example User") | |
mail.setFrom(email) | |
mail.setSubject("Hello World from the SendGrid Node.js Library") | |
personalization = new helper.Personalization() | |
email = new helper.Email("[email protected]", "Example User") | |
personalization.addTo(email) | |
email = new helper.Email("[email protected]", "Example User") | |
personalization.addTo(email) | |
email = new helper.Email("[email protected]", "Example User") | |
personalization.addCc(email) | |
email = new helper.Email("[email protected]", "Example User") | |
personalization.addCc(email) | |
email = new helper.Email("[email protected]", "Example User") | |
personalization.addBcc(email) | |
email = new helper.Email("[email protected]", "Example User") | |
personalization.addBcc(email) | |
personalization.setSubject("Hello World from the Personalized SendGrid Node.js Library") | |
header = new helper.Header("X-Test", "True") | |
personalization.addHeader(header) | |
header = new helper.Header("X-Test2", "False") | |
personalization.addHeader(header) | |
substitution = new helper.Substitution("%name%", "Example User") | |
personalization.addSubstitution(substitution) | |
substitution = new helper.Substitution("%city%", "Denver") | |
personalization.addSubstitution(substitution) | |
custom_arg = new helper.CustomArgs("timing", "morning") | |
personalization.addCustomArg(custom_arg) | |
custom_arg = new helper.CustomArgs("type", "marketing") | |
personalization.addCustomArg(custom_arg) | |
personalization.setSendAt(1443636899) | |
mail.addPersonalization(personalization) | |
content = new helper.Content("text/plain", "some text here") | |
mail.addContent(content) | |
content = new helper.Content("text/html", "<html><body>some text here</body></html>") | |
mail.addContent(content) | |
content = new helper.Content("text/calendar", "Party Time") | |
mail.addContent(content) | |
attachment = new helper.Attachment() | |
attachment.setContent("TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gQ3JhcyBwdW12") | |
attachment.setType("application/pdf") | |
attachment.setFilename("balance_001.pdf") | |
attachment.setDisposition("attachment") | |
mail.addAttachment(attachment) | |
attachment = new helper.Attachment() | |
attachment.setContent("BwdW") | |
attachment.setType("image/png") | |
attachment.setFilename("banner.png") | |
attachment.setDisposition("inline") | |
attachment.setContentId("banner") | |
mail.addAttachment(attachment) | |
mail.setTemplateId("439b6d66-4408-4ead-83de-5c83c2ee313a") | |
section = new helper.Section("%section1%", "Textforasubstitutiontagofsection1") | |
mail.addSection(section) | |
section = new helper.Section("%section2%", "Textforasubstitutiontagofsection2") | |
mail.addSection(section) | |
header = new helper.Header("X-Test3", "1") | |
mail.addHeader(header) | |
header = new helper.Header("X-Test4", "2") | |
mail.addHeader(header) | |
category = new helper.Category("January") | |
mail.addCategory(category) | |
category = new helper.Category("2015") | |
mail.addCategory(category) | |
custom_arg = new helper.CustomArgs("timing", "evening") | |
mail.addCustomArg(custom_arg) | |
custom_arg = new helper.CustomArgs("type", "summer_contest") | |
mail.addCustomArg(custom_arg) | |
mail.setSendAt(1443636899) | |
//This must be a valid [batch ID](https://sendgrid.com/docs/API_Reference/SMTP_API/scheduling_parameters.html) to work | |
//mail.setBatchId("some_batch_id") | |
asm = new helper.Asm(3, [1,4,5]) | |
mail.setAsm(asm) | |
mail.setIpPoolName("23") | |
mail_settings = new helper.MailSettings() | |
bcc = new helper.Bcc(true, "[email protected]") | |
mail_settings.setBcc(bcc) | |
bypass_list_management = new helper.BypassListManagement(false) | |
mail_settings.setBypassListManagement(bypass_list_management) | |
footer = new helper.Footer(true, "some footer text", "<html><body>some footer text</body></html>") | |
mail_settings.setFooter(footer) | |
sandbox_mode = new helper.SandBoxMode(true) | |
mail_settings.setSandBoxMode(sandbox_mode) | |
spam_check = new helper.SpamCheck(true, 1, "https://gotchya.example.com") | |
mail_settings.setSpamCheck(spam_check) | |
mail.addMailSettings(mail_settings) | |
tracking_settings = new helper.TrackingSettings() | |
click_tracking = new helper.ClickTracking(false, false) | |
tracking_settings.setClickTracking(click_tracking) | |
open_tracking = new helper.OpenTracking(true, "Optional tag to replace with the open image in the body of the message") | |
tracking_settings.setOpenTracking(open_tracking) | |
subscription_tracking = new helper.SubscriptionTracking(true, "text to insert into the text/plain portion of the message", "html to insert into the text/html portion of the message", "Optional tag to replace with the open image in the body of the message") | |
tracking_settings.setSubscriptionTracking(subscription_tracking) | |
ganalytics = new helper.Ganalytics(true, "some utm source", "some utc medium", "some utm term", "some utm content", "some utm campaign") | |
tracking_settings.setGanalytics(ganalytics) | |
mail.addTrackingSettings(tracking_settings) | |
email = new helper.Email("[email protected]", "Example User") | |
mail.setReplyTo(email) | |
return mail.toJSON() | |
} | |
function send(toSend){ | |
console.log(JSON.stringify(toSend, null, 2)) | |
//console.log(JSON.stringify(toSend)) | |
var sg = require('sendgrid')(process.env.SENDGRID_API_KEY) | |
var requestBody = toSend | |
var emptyRequest = require('sendgrid-rest').request | |
var requestPost = JSON.parse(JSON.stringify(emptyRequest)) | |
requestPost.method = 'POST' | |
requestPost.path = '/v3/mail/send' | |
requestPost.body = requestBody | |
sg.API(requestPost, function (error, response) { | |
console.log(response.statusCode) | |
console.log(response.body) | |
console.log(response.headers) | |
}) | |
} | |
// send(helloEmail()) | |
send(kitchenSink()) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment