The sendgrid Package
Last updated
Was this helpful?
Last updated
Was this helpful?
The sendgrid
package provides some useful emailing capabilities via the . :mailbox_with_mail: :envelope:
Reference:
Thanks to former student @mgallea for discovering the email template capabilities
From within an active virtual environment, install the sendgrid
package:
NOTE: we'll want to make sure the installed version is greater than 6.0.5, because earlier versions of this package worked differently, and the code examples in this document only apply to the newer versions.
Also set an environment variable called SENDER_ADDRESS
to be the same email address as the single sender address you just associated with your SendGrid account (e.g. "abc123@gmail.com").
Send yourself an email:
NOTE: if you see a status code of 202, it means the message was sent successfully
Check your inbox:
NOTE: this message might take a minute to send, and it might be in your spam folder to start
For the mail object's html_content
parameter, we can use a simple string like the example above, or we can start to use some HTML content:
... or we can even compile an entire HTML document into a single string:
An alternative way to compile the email content is to use a "dynamic email template" whereby we'll specify some common HTML structure that will apply to all emails, and pass specific data to populate the template for each specific email. Let's try sending a simple receipt via template.
Back in the SendGrid platform, click "Add Version" to create a new version of a "Blank Template" and select the "Code Editor" as your desired editing mechanism.
At this point you should be able to paste the following HTML into the "Code" tab, and the corresponding example data in the "Test Data" tab, and save each after you're done editing them.
Example "Code" template which will specify the structure of all emails:
Example "Test Data" which will populate the template:
NOTE: when we send real emails using this template, we'll pass dynamic data with different values, but it should resemble this test data structure.
Finally, configure the template's subject by clicking on "Settings" in the left sidebar. Choose an email subject like "Your Receipt from the Green Grocery Store". Then click "Save Template".
After configuring and saving the email template, we should be able to use it to send an email:
First, , then follow the instructions to complete your "Single Sender Verification", clicking the link in a confirmation email to verify your account.
Then with "full access" permissions. We'll want to store the API Key value in an called SENDGRID_API_KEY
.
Use a to managing these environment variables.
Navigate to and press the "Create Template" button on the top right. Give it a name like "example-receipt", and click "Save". At this time, you should see your template's unique identifier (e.g. "d-b902ae61c68f40dbbd1103187a9736f0"). Copy this value and store it in an environment variable called SENDGRID_TEMPLATE_ID
.
NOTE: the is like HTML, but allows us to construct HTML dynamically based on some data (in this case it wants us to pass it human_friendly_timestamp
, products
, and total_price_usd
variables)