All notable changes to this project will be documented in this file.
Library - Docs
- PR #1360: Modify README.md in alignment with SendGrid Support. Thanks to @garethpaul!
- PR #1359: Fix troubleshooting in readme. Thanks to @MarcusHSmith!
Library - Feature
Library - Fix
Library - Chore
- PR #1347: update Axios dependency. Thanks to @JenniferMah!
- PR #1341: push Datadog Release Metric upon deploy success. Thanks to @eshanholtz!
Library - Docs
- PR #1342: fix broken image links on npm. Thanks to @IObert!
- PR #1340: Update docs with bodyParser exclusion for webhook signature verification. Thanks to @danmana!
Library - Chore
- PR #1334: upgrade supported language versions. Thanks to @childish-sambino!
- PR #1329: migrate to gh actions. Thanks to @shwetha-manvinkurke!
- PR #1320: adjust 'packages/mail/src/mail.d.ts'. Thanks to @collierrgbsitisfise!
- PR #1325: update license year. Thanks to @JenniferMah!
Library - Test
- PR #1330: set the right version for tests. Thanks to @shwetha-manvinkurke!
- PR #1327: get the integration tests running again. Thanks to @shwetha-manvinkurke!
Library - Fix
- PR #1326: Revert "chore: adjust 'packages/mail/src/mail.d.ts' (#1320)". Thanks to @eshanholtz!
Library - Docs
- PR #1324: fix npm docs link. Thanks to @arvindell!
Library - Docs
- PR #1314: Fix example of creating a transactional template in usage.md. Thanks to @robbieaverill!
Library - Feature
- PR #1312: allow personalization of the From name & email for each email recipient. Thanks to @beebzz!
Library - Feature
Library - Docs
- PR #1308: improve signed webhook validation instruction. Thanks to @shwetha-manvinkurke!
Library - Test
- PR #1305: fix issue with new client overriding previously set api key. Thanks to @seantcanavan!
Library - Chore
Library - Fix
Library - Docs
- PR #1281: fix broken docs link. Thanks to @GregTCLTK!
Library - Fix
Library - Docs
- PR #1272: Update TROUBLESHOOTING.md - add JSON.stringify. Thanks to @svitekpavel!
Library - Fix
- PR #1256: send email with custom headers at mail-service.js. Thanks to @TondaHack!
- PR #1261: docs for content_id field. Thanks to @thinkingserious!
Library - Chore
- PR #1271: add signed webhook test for multi event payload. Thanks to @shwetha-manvinkurke!
Library - Fix
- PR #1257: Node 6 build failure. Thanks to @thinkingserious!
Library - Docs
- PR #1252: Update API Docs link in Readme's. Thanks to @TylerAHolden!
Library - Chore
Library - Chore
- PR #1239: bump axios version. Thanks to @fileformat!
Library - Chore
Library - Feature
Library - Feature
Library - Docs
- PR #1208: Add eventwebhook package to main README. Thanks to @chammaaomar!
Library - Chore
Library - Fix
- PR #1190: do not wrap names with commas in quotes. Thanks to @eshanholtz!
- PR #1198: make attachment type and disposition optional. Thanks to @childish-sambino!
- PR #1189: change @starkbank/ecdsa dependency v0.0.3 to updated starkbank-e…. Thanks to @cdottori-stark!
Library - Docs
Library - Fix
Library - Chore
- PR #1171: update GitHub branch references to use HEAD. Thanks to @thinkingserious!
Library - Chore
- PR #1172: collapse multiple mail-send TS signatures. Thanks to @seromenho!
Library - Chore
- PR #1165: migrate to new default sendgrid-oai branch. Thanks to @eshanholtz!
Library - Docs
- PR #836: Remove references to legacy "Whitelabel" Verbiage. Thanks to @crweiner!
- PR #858: add more use cases for adding attachments. Thanks to @cesargamboa!
Library - Docs
- PR #907: Add generation field to create template call otherwise legacy template will be created. Thanks to @vinu-phoenix!
- PR #1151: Update transactional-templates.md to use dynamicTemplateData instead of dynamic_template_data. Thanks to @bttf!
- PR #1145: Update docs for domain or email verification. Thanks to @GeoFro!
Library - Fix
- PR #1153: event webhook interface to process raw body. Thanks to @eshanholtz!
Library - Fix
- PR #1141: request validation test fix. Thanks to @childish-sambino!
- PR #1133: travis autodeploy. Thanks to @eshanholtz!
- PR #1123: update node version in travis for deploy via lerna. Thanks to @thinkingserious!
Library - Feature
- PR #1136: verify signature from event webhook. Thanks to @eshanholtz!
Library - Docs
- PR #1131: Fixing sandbox key in kitchen-sink documentation. Thanks to @itsjoekent!
- PR #850: Add sandbox setting to kitchen-sink documentation. Thanks to @notdmart!
Library - Fix
- PR #1112: migrate to common prism setup. Thanks to @childish-sambino!
- PR #1113: don't limit the request content length. Thanks to @childish-sambino!
Library - Feature
- PR #600: Add subuser impersonation to client. Thanks to @CaptainYarb!
- PR #1093: add support for Twilio Email. Thanks to @childish-sambino!
Library - Docs
- PR #1104: add documentation on the on-behalf-of header usage. Thanks to @ayandyl!
- PR #1100: clarify cancel and pause capabilities for scheduled sends. Thanks to @thinkingserious!
- PR #1097: document sendAt limitations. Thanks to @dandv!
Library - Fix
- PR #1102: correct the mail TS exports. Thanks to @childish-sambino!
Library - Fix
- PR #1084: correct the User-Agent casing. Thanks to @childish-sambino!
Library - Docs
- PR #1078: support verbiage for login issues. Thanks to @adamchasetaylor!
- PR #1073: reorg docs and add migration guide. Thanks to @thinkingserious!
Library - Fix
- PR #985: options.uri must be string. Thanks to @shrujalshah28!
- PR #852: correct the attachment file path test. Thanks to @digitalica!
- PR #1076: add 'setTimeout' to the MailService TS definition. Thanks to @childish-sambino!
Library - Feature
- PR #1077: console warning added when using an invalid API key. Thanks to @childish-sambino!
- PR #1058: migrate from deprecated request module to axios. Thanks to @eshanholtz! (breaking change)
Library - Chore
- PR #1063: upgrade dev dependencies and fix eslint warnings/errors. Thanks to @eshanholtz!
Library - Chore
- PR #1069: refactor duplicate code in client tests. Thanks to @childish-sambino!
- PR #1053: export type MailDataRequired. Thanks to @antonsamper!
Library - Fix
- PR #1041: require in TS at least 1 type of content for sending mail. Thanks to @childish-sambino!
Library - Docs
- PR #877: Improve the mail package's README to handle the async send(). Thanks to @Berkmann18!
- PR #827: Fix grammatical errors in README. Thanks to @chaman-1!
- PR #825: Properly capitalize Brands. Thanks to @aslafy-z!
- PR #989: Update README.md to explicitly state that 'send()' returns a promise. Thanks to @Ifunanyacollins!
- PR #878: Update USAGE.md to prevent query double encoding. Thanks to @sigginet!
- PR #984: fix typo 'Feild' to 'Field'. Thanks to @kendalled!
Library - Chore
- PR #942: Bump braces from 2.3.0 to 2.3.2 in /packages/subscription-widget. Thanks to @dependabot!
Library - Fix
- PR #1040: update Client constructor property definition in TS declaration. Thanks to @childish-sambino!
- PR #1039: upgrade deepmerge to resolve webpack import issue. Thanks to @childish-sambino!
- PR #921: update MailService constructor property definition in TypeScript declaration. Thanks to @dhritzkiv!
Library - Fix
Library - Fix
- PR #1030: remove chai from dependencies. Thanks to @thinkingserious!
Library - Docs
- PR #1028: baseline all the templated markdown docs. Thanks to @childish-sambino!
Library - Docs
- PR #943: Update url in "DYNAMIC_TEMPLATE_CHAR_WARNING" to point to a working current link. Thanks to @NickFoden!
Library - Fix
- PR #900: Return promise with catch handler if callback provided. Thanks to @adamreisnz!
- PR #935: Fixed deepmerge module export naming issue. Thanks to @chrisamador!
- PR #1010: Cleanup dependencies. Thanks to @thinkingserious!
Library - Feature
- PR #932: Allow hiding warnings. Thanks to @albertor24!
Library - Chore
- PR #1011: Bump extend from 3.0.1 to 3.0.2 in /packages/subscription-widget. Thanks to @dependabot!
- PR #1012: Bump sshpk from 1.13.1 to 1.16.1 in /packages/subscription-widget. Thanks to @dependabot!
- PR #1015: Bump fstream from 1.0.11 to 1.0.12 in /packages/subscription-widget. Thanks to @dependabot!
- PR #1016: Bump atob from 2.0.3 to 2.1.2 in /packages/subscription-widget. Thanks to @dependabot!
- PR #1018: Bump lodash from 4.17.11 to 4.17.15 in /packages/inbound-mail-parser. Thanks to @dependabot!
- PR #1014: Bump mixin-deep from 1.3.0 to 1.3.2 in /packages/subscription-widget. Thanks to @dependabot!
- PR #1017: Bump tar from 2.2.1 to 2.2.2 in /packages/subscription-widget. Thanks to @dependabot!
- PR #1019: Bump stringstream from 0.0.5 to 0.0.6 in /packages/subscription-widget. Thanks to @dependabot!
- PR #1026: prep the repo for automated releasing. Thanks to @childish-sambino!
- PR #720: Updated README tags. Big thanks to Anshul Singhal for the PR!
- PR #726: Readability updates. Big thanks to Anshul Singhal for the PR!
- PR #728: Added link to docs from README. Big thanks to Agnes Jang for the PR!
- PR #490: Added how to deploy simple hello world app on Azure. Big thanks to Saras Arya for the PR!
- PR #731: Update USE_CASES.md for Dynamic Templates. Big thanks to Houssem Yahiaoui for the PR!
- PR #514: Allow readable stream as email attachments. Big thanks to TunedMidja for the PR!
- PR #749: Update docs to show an example on how to enable tracking settings. Big thanks to Carlos Henrique Merces Moreira for the PR!
- PR #751: Update README.md to include the CLA. Big thanks to Bharat Raghunathan for the PR!
- PR #759: Add documentation for Email Activity API. Big thanks to Stuart Reed for the PR!
- PR #792: Add inbound parse webhook example. Big thanks to Ashley Roach for the PR!
- PR #795: Add first-timers.md file for newcomers. Big thanks to Dmitriy Danilov for the PR!
- PR #768: Documentation updated for
from
field. Big thanks to Valerian Pereira for the PR! - PR #802: Update OSI code of conduct link. Big thanks to José Antonio Chio for the PR!
- PR #793: Warn if dynamic template contains non-escaped character. Big thanks to Stuart Reed for the PR!
- PR #785: Updating TROUBLESHOOTING.md with text wrapping example. Big thanks to Siddhant Sharma for the PR!
- PR #784: Update docs: specify custom arguments must have string values. Big thanks to Ishaan Malhi for the PR!
- PR #774: Run *.md Documents Through Grammerly & Update Accordingly. Big thanks to Alan Unruh for the PR!
- PR #770: [contact-importer] Update to support @sendgrid/client v6.X. Big thanks to Zadkiel for the PR!
- PR #767: Add conformance to style standards. Big thanks to Tony Ho for the PR!
- PR #645: Clarified how you can change the sender name. Big thanks to Sundin for the PR!
- PR #586: Expanded Travis.yml. Big thanks to Vivek Iyer for the PR!
- PR #585: Updated usage for /categories/stats. Big thanks to Poschacher Michael for the PR!
- PR #525: Add statistics helper class. Big thanks to Devan Patel for the PR!
- PR #502: Prevent secrets from sending in email. Big thanks to Hugo do Carmo for the PR!
- PR #488: Add example use case for Slack event integration. Big thanks to Mahatthana Nomsawadi for the PR!
- PR #826: Fixed capitalization for "SendGrid" in Contact the Moderators. Big thanks to Joe Romeo for the PR!
- PR #819: Fix typo in USE_CASES.md. Big thanks to Byungjin Park for the PR!
- PR #809: Properly capitalize "SendGrid" brand. Big thanks to Zadkiel for the PR!
- PR #804: Add Event Webhook docker. Big thanks to Ashley Roach for the PR!
- PR #831:Add our Developer Experience Engineer career opportunity to the README. Big thanks to Manjiri Tapaswi for the PR!
- PR #847: Remove <%body%> from transactional template example. Big thanks to Ashley Roach for the PR!
- PR #505: Attachment helper for base64 encoding. Big thanks to Hugo do Carmo for the PR!
- PR #855: Linter Fixes.
- PR #812: Fix parser constructor error when passing payload. Big thanks to Felipe for the PR!
- PR #862: Fix const data = None; in client/USAGE.md.
- PR #866: Not able to get the template list.
- PR #803: Update documentation with new Git workflow. Big thanks to Tony Ho for the PR!
- PR #925: Twilio Branding and SMS update.
- PR #735: Fix outdated careers link. Big thanks to Ashley Roach for the PR!
- PR #754: Fix subscription-widget node engine version. Big thanks to Rafael Almeida for the PR!
- PR #757: Upgrade request to 2.88.0 (latest). Big thanks to Guy Khmelnitsky for the PR!
- PR #716: MailData must have dynamicTemplateData property. Big thanks to Marat Dyatko for the PR!
- PR #763: [inbound-mail-parser] fix(deps): Update mailparser to 2.3.4. Big thanks to Zadkiel for the PR!
- PR #773: Kubernetes secrets "\n" problem fix. Big thanks to Daksh for the PR!
- PR #789: Correct link for environment variables setup. Big thanks to PyroclasticMayhem for the PR!
- PR #780: v3 send email broken link fixed in TROUBLESHOOTING.md. Big thanks to Arshad Kazmi for the PR!
- PR #779: Contributing.md broken links fix. Big thanks to Arshad Kazmi for the PR!
- PR #583: Fix README instructions and replace stray tab indentation by spaces. Big thanks to Adam Reis for the PR!
- PR #522: Comma bug in name. Big thanks to Jordan Tepper for the PR!
- PR #824: Fix Travis CI build failures on main. Big thanks to Tony Ho for the PR!
- PR #798: Update transactional-templates.md. Big thanks to Kyle Roberts for the PR!
This minor version bump was due to a hiccup using lerna
to publish to npm.
- PR #691: Added support for
dynamicTemplateData
. Big thanks to Raju Mandapati for the PR! - PR #510: A tutorial to deploy a simple Hello Email app on Digital Ocean with Node.js using this SDK. Big thanks to Devin Chasanoff for the PR!
- PR #628: Add a repository overview in CONTRIBUTING.md. Big thanks to Nitish Phanse for the PR!
- PR #603: Added links to CONTRIBUTING.md. Big thanks to John Stevans for the PR!
- PR #687: Exclude sections from camel/snake case conversion in Mail helper class. Big thanks to Simon Bélanger for the PR!
- PR #666: Bumped the moment, chai-as-promised, and dirty-chai version in package.json. Big thanks to Cory Trimm for the PR!
- PR #651: Typo - Change
contentId
tocontent_id
. Big thanks to Tak Tran for the PR! - PR #610: Exclude esdoc node modules. Big thanks to Nitish Phanse for the PR!
- PR #619, Fixes #618: Update definitions for tsc 2.6
- Thanks to Francesco Soncina for the PR!
- PR #650: Expose Client and MailService classes
- Thanks to Adam Reis for the PR!
- PR #468: Heroku Tutorial
- Thanks to Shawn Wang for the PR!
- PR #477: Check if "body" on "response" is actually defined before accessing it
- Thanks to Philipp Gröschler for the PR!
- PR #457: Function to remove HTML tags
- Thanks to Nathaniel Hodges for the PR!
- PR #580: Simplify complexity in arrayToJson helpers
- Thanks to Anthony Juan Christian for the PR!
- PR #597: Adds file structure for USE_CASES.md
- Thanks to Shriyash Jalukar for the PR!
- PR #595: Added Code Review to CONTRIBUTING.md
- Thanks to Manjiri Tapaswi for the PR!
- PR #471: Google App Engine (GAE) Tutorial
- Thanks to Thujeevan for the PR!
- PR #449: Updated the endpoint which allows the retrieval of all recipients
- Thanks to Divya Rani for the PR!
- PR #568: Added unittest to check for specific repo files
- Thanks to Manjiri Tapaswi for the PR!
- PR #594: Sr. Front End Engineer job posting in Announcements
- Thanks to Marghodk for the PR!
- PR #605: Chai dependency version issue
- Thanks to Mukul Mishra for the PR!
- PR #581: Remove .only from test
- Thanks to Cédric Guérin for the PR!
- Pull #539: Add subscription widget to packages
- Thanks to Devin Chasanoff for the PR!
- Pull #542: Turn ContactImporter into ES6 class
- Thanks to Seth Etter for the PR!
- Pull #542: Turn ContactImporter into ES6 class
- Thanks to Seth Etter for the PR!
- Pull #445: Documentation Updates for better DX/UX
- Updates to README, TROUBLESHOOTING and USE_CASE documents to improve the developer experience.
- Pull #442: This addresses the issue where custom args and substitutions would have their keys transformed to camel case / snake case.
- Solves #441: Substitution is not working
- Thanks to Adam Reis for the PR!
- Pull #438: Content is not mandatory
- Solves #435: Unexpected Error when trying to send transactional email
- Thanks to Adam Reis for the PR!
- Pull #436, solves #433: Convert plain data to personalization class instance
- Thanks to Adam Reis for the PR!
- Pull #430, solves #428: TypeScript support added for v6 packages
- Thanks to Benjamin Pannell for the PR!
- BIG, HUGE, MEGA THANKS to Adam Reis for this amazing PR!!!
- Pull #407 via #378: API Simplification
- v6.0.0 is a complete rewrite of this SDK for all endpoints. To upgrade from v5.X and lower, we suggest you update your code based on the examples found here for mail send and here for all other endpoints.
- Please do not hesitate to open an issue if there are any challenges and/or feedback. PRs are also welcome.
- Pull #418: Fixed #417: fix: Update TypeScript definition to correct callback arguments for API
- Thanks to Benjamin Pannell for the PR!
- Pull #413: Handle null and undefined values in substitutions
- Thanks to Matteo Ferrando for the PR!
- Pull #410: Cast substitution values to strings
- Thanks to Ryan James for the PR!
- Pull #399
- Fix
batch_id
type - Thanks to Leonardo Testa for the PR!
- Pull #391
- Return personalizations as an array of request compatible JSON.
- Thanks to Paul Hrimiuc for the PR!
- Pull #325
- Run prism for tests
- Now the mock SendGrid server, powered by Prism is automated locally and on Travis
- Thanks to Mike Ralphson for the PR!
- Pull #385
- Remove JSON.parse() around response bodies in contact-importer
- Thanks to Eemeli Aro for the PR!
- Pull #328
- Drop 0.10, 0.12 from supported Node.js versions, add 6
- Thanks to Mike Ralphson for the PR!
- Pull #303
- Add Inbound Parse data parser
- Thanks to Jamie for the PR!
- Pull #371
- Catch error in sendgrid, partially solves #370
- Thanks to gf for the PR!
- Pull #348
- Fix typescript definition for the ClickTracking
- Thanks to dhenriques for the PR!
- Pull #368, Fixes #367
- Personalization.getSubstitutions() return type incorrect in index.d.ts TypeScript definition file
- Thanks to Brian Love for the PR!
- Pull #338
- Fix function name in mail helper and fix the corresponding test
- Thanks to Seoker Wang for the PR!
- Pull #354
- fix: Make various TypeScript request components optional
- Thanks to Benjamin Pannell for the PR!
- Pull #333
- [TypeDefinition] SendGrid.API should return Promise instead of PromiseLike
- Thanks to Ayman Nedjmeddine for the PR!
- Pull #329
- Simplified installation instructions
- Thanks to Heitor Tashiro Sergent for the PR!
- Pull #323, Fixed issue #317
- Updates nodejs-http-client dependency to v2.3.0
- Invoke the API callback with a mocked response upon Error
- Thanks to Huli for the PR!
- Pull #319, Fixed issue #266
- Converts
response.body
to have valid json objects - Thanks to Hugo Durães for the pull request!
- Pull #308 feat: Add support for promises to the TypeScript definitions file
- Thanks to Benjamin Pannell for the pull request!
- Pull #309 Allow emptyRequest() to be called with a request object
- Thanks to Benjamin Pannell for the fix!
- Pull #299: Fill 'response' property in error instance
- This makes the behavior when using callbacks consistent with the promise counterpart. That is, in both cases, error.response is present
- Thanks to Guilherme Souza for the pull request!
- Pull #300: Correct TypeScript definitions
- Thanks to Benjamin Pannell for the fix!
- Pull #251: Add TypeScript typings definition file for v3 API
- Thanks to Benjamin Pannell for the pull request!
- Issue #292: 4.2.0 Error: Cannot find module 'debug'
- Pull Request #278: Tkp/contact importer
- Thanks to Tom Kirkpatrick for the pull request!
- Pull Request #277: Make SendGrid a factory that enables multiple prototype instances
- Thanks to Tom Kirkpatrick for the pull request!
- Table of Contents in the README
- Added a USE_CASES.md section, with the first use case example for transactional templates
- Pull request #264: Fixed backwards compatability with Node.js versions 0.10 and 0.12
- Use var instead of let
- Check if Promise is defined
- Pull request #261
- BIG THANKS to Adam Buczynski!!!
- Extracted some logic into helpers
- Using a getEmptyRequest helper to avoid code duplication
- emptyRequest now accepts an object with data to extend the empty request with, this will allow simpler syntax for initializing requests.
- Callback function now receives two parameters as per Node conventions (error, response)
- If no callback provided, the method will return a promise instead.
- Implemented promise API when not passing a callback function
- Using native Promise by default if present, but allow users to override this with any other implementation by setting Sendgrid.Promise to any value, e.g. Sendgrid.Promise = require('bluebird')
- Troubleshooting section
- Fixed typo in Mail Helper per pull request #250
- Thanks to Cameron Wilby for finding the issue!
- README updates
- Update introduction blurb to include information regarding our forward path
- Update the v3 /mail/send example to include non-helper usage
- Update the generic v3 example to include non-fluent interface usage
- Update docs, unit tests and examples to include Sender ID
- Content based on our updated Swagger/OAI doc
- GET suppression/bounces needs header to be Accept: application/json
- Updated dependency on https://github.com/sendgrid/nodejs-http-client
- Sending email with accents: sendgrid#239
- Thanks eaparango!
- Fixed exports and README example
- Moving mail helper export
- Added mail helper
- Missing index.js
- Breaking change to support the v3 Web API
- New HTTP client
- v3 Mail Send helper
- Add cc now uses the WebAPI instead of the SMTPApi. Read disclaimer for details
- Pinned request version to be less than
2.59.0
because it broke something
- setFromName function #175
- addBcc and setBccs functions
- Support for API keys
- ASM Group ID support
- CHANGELOG.md