Send email messages with Python
This page explains how to send email messages with the Nylas Python SDK and Email API.
Before you begin
Before you start, you must have done the following tasks:
- Installed and set up the Nylas Python SDK.
- Authenticated one or more end users.
Create and send a draft
To create a draft and send it as an email message, first create a Draft object and assign it attributes.
draft = nylas.drafts.create(
grant_id,
request_body={
"to": [{ "name": "Name", "email": email }],
"reply_to": [{ "name": "Name", "email": email }],
"subject": "Your Subject Here",
"body": "Your email body here.",
}
)
The to
parameter is an array of email objects that contains names and email addresses. You can use to
for cc
and bcc
.
Next, use drafts.send()
to send the draft as an email message.
draft = nylas.drafts.send(
'<NYLAS_GRANT_ID>',
'<DRAFT_ID>',
)
Reply to an email message
The first step to reply to an email message is to find the thread you want to reply to. Then, create a draft that has the same thread_id
and subject
, as in the following example.
from dotenv import load_dotenv
load_dotenv()
import os
import sys
from nylas import Client
draft = nylas.drafts.create(
'<NYLAS_GRANT_ID>',
request_body={
"to": [{ "name": "Name", "email": email }],
"reply_to": [{ "name": "Name", "email": email }],
"subject": "Your Subject Here",
"body": "Your email body here.",
"thread_id": '<THREAD_ID>'
}
)
draftSent = nylas.drafts.send(
'<NYLAS_GRANT_ID>',
draft[0].id,
)
Attach a file to an email message
The Attachments endpoint allows you to create and modify files that you can attach to email messages. The following example shows how to take a file that's saved locally and upload it to Nylas for use with the Email API.
from nylas.utils.file_utils import attach_file_request_builder
# Attachment to add to draft
attachment = attach_file_request_builder('attachment.pdf')
Next, create a draft to attach the file to.
draft = nylas.drafts.create(
'<NYLAS_GRANT_ID>',
request_body={
"to": [{ "name": "Name", "email": email }],
"reply_to": [{ "name": "Name", "email": email }],
"subject": "Your Subject Here",
"body": "Your email body here.",
"attachments": [attachment]
}
)
draft = nylas.drafts.send(
'<NYLAS_GRANT_ID>',
draft[0].id,
)
Below is the full example showing how to attach a file to an email message.
from dotenv import load_dotenv
load_dotenv()
import os
import sys
from nylas import Client
from nylas.utils.file_utils import attach_file_request_builder
nylas = Client(
os.environ.get('NYLAS_API_KEY'),
os.environ.get('NYLAS_API_URI')
)
attachment = attach_file_request_builder('attachment.pdf')
draft = nylas.drafts.create(
'<NYLAS_GRANT_ID>',
request_body={
"to": [{ "name": "Name", "email": email }],
"reply_to": [{ "name": "Name", "email": email }],
"subject": "Your Subject Here",
"body": "Your email body here.",
"attachments": [attachment]
}
)
draft = nylas.drafts.send(
'<NYLAS_GRANT_ID>',
draft[0].id,
)
Explore the Email API
If you've made it to this point, congratulations! You've learned how to send email messages with the Nylas Python SDK and Email API! 🎉
There's plenty more that you can do with Nylas. Take a look at the following resources to learn more: