MailerSend Python SDK
- Table of Contents
- Installation
- Usage
- Email Verification
- Bulk Email
- Activity
- Analytics
- Inbound Routes
- Domains
- Messages
- Scheduled messages
- Recipients
- Get a list of recipients
- Get a single recipient
- Delete a recipient
- Get recipients from a blocklist
- Get recipients from hard bounces
- Get recipients from spam complaints
- Get recipients from unsubscribes
- Add recipients to blocklist
- Add hard bounced recipients
- Add spam complaints
- Add recipients to unsubscribe list
- Delete recipients from blocklist
- Delete hard bounced recipients
- Delete spam complaints
- Delete recipients from unsubscribe list
- Tokens
- Templates
- Webhooks
- SMS
- SMS Activity
- SMS Phone Numbers
- SMS Recipients
- SMS Messages
- SMS Webhooks
- SMS Inbouds
- Sender Identities
- API Quota
- Troubleshooting
- Testing
- Available endpoints
- Support and Feedback
- License
$ python -m pip install mailersend
- Python > 3.6.1
- Python
pip
- An API Key from mailersend.com
We recommend you to define MAILERSEND_API_KEY
environment variable in the .env
file, and use it to store the API key.
- Using environment variable
from mailersend import emails
# assigning NewEmail() without params defaults to MAILERSEND_API_KEY env var
mailer = emails.NewEmail()
# define an empty dict to populate with mail values
mail_body = {}
mail_from = {
"name": "Your Name",
"email": "[email protected]",
}
recipients = [
{
"name": "Your Client",
"email": "[email protected]",
}
]
reply_to = {
"name": "Name",
"email": "[email protected]",
}
mailer.set_mail_from(mail_from, mail_body)
mailer.set_mail_to(recipients, mail_body)
mailer.set_subject("Hello!", mail_body)
mailer.set_html_content("This is the HTML content", mail_body)
mailer.set_plaintext_content("This is the text content", mail_body)
mailer.set_reply_to(reply_to, mail_body)
# using print() will also return status code and data
mailer.send(mail_body)
- Explicit declaration
from mailersend import emails
mailer = emails.NewEmail("my-api-key")
# define an empty dict to populate with mail values
mail_body = {}
mail_from = {
"name": "Your Name",
"email": "[email protected]",
}
recipients = [
{
"name": "Your Client",
"email": "[email protected]",
}
]
reply_to = {
"name": "Name",
"email": "[email protected]",
}
mailer.set_mail_from(mail_from, mail_body)
mailer.set_mail_to(recipients, mail_body)
mailer.set_subject("Hello!", mail_body)
mailer.set_html_content("This is the HTML content", mail_body)
mailer.set_plaintext_content("This is the text content", mail_body)
mailer.set_reply_to(reply_to, mail_body)
# using print() will also return status code and data
mailer.send(mail_body)
from mailersend import emails
from dotenv import load_dotenv
load_dotenv()
mailer = emails.NewEmail(os.getenv('MAILERSEND_API_KEY'))
# define an empty dict to populate with mail values
mail_body = {}
mail_from = {
"name": "Your Name",
"email": "[email protected]",
}
recipients = [
{
"name": "Your Client",
"email": "[email protected]",
}
]
reply_to = {
"name": "Name",
"email": "[email protected]",
}
mailer.set_mail_from(mail_from, mail_body)
mailer.set_mail_to(recipients, mail_body)
mailer.set_subject("Hello!", mail_body)
mailer.set_html_content("This is the HTML content", mail_body)
mailer.set_plaintext_content("This is the text content", mail_body)
mailer.set_reply_to(reply_to, mail_body)
# using print() will also return status code and data
mailer.send(mail_body)
from mailersend import emails
from dotenv import load_dotenv
load_dotenv()
mailer = emails.NewEmail(os.getenv('MAILERSEND_API_KEY'))
# define an empty dict to populate with mail values
mail_body = {}
mail_from = {
"name": "Your Name",
"email": "[email protected]",
}
recipients = [
{
"name": "Your Client",
"email": "[email protected]",
}
]
cc = [
{
"name": "CC",
"email": "[email protected]"
}
]
bcc = [
{
"name": "BCC",
"email": "[email protected]"
}
]
mailer.set_mail_from(mail_from, mail_body)
mailer.set_mail_to(recipients, mail_body)
mailer.set_subject("Hello!", mail_body)
mailer.set_html_content("This is the HTML content", mail_body)
mailer.set_plaintext_content("This is the text content", mail_body)
mailer.set_cc_recipients(cc, mail_body)
mailer.set_bcc_recipients(bcc, mail_body)
mailer.send(mail_body)
from mailersend import emails
from dotenv import load_dotenv
load_dotenv()
mailer = emails.NewEmail(os.getenv('MAILERSEND_API_KEY'))
# define an empty dict to populate with mail values
mail_body = {}
mail_from = {
"name": "Your Name",
"email": "[email protected]",
}
recipients = [
{
"name": "Your Client",
"email": "[email protected]",
}
]
variables = [
{
"email": "[email protected]",
"substitutions": [
{
"var": "foo",
"value": "bar"
},
]
}
]
mailer.set_mail_from(mail_from, mail_body)
mailer.set_mail_to(recipients, mail_body)
mailer.set_subject("Hello from {$company}", mail_body)
mailer.set_template("templateID", mail_body)
mailer.set_personalization(variables, mail_body)
mailer.send(mail_body)
from mailersend import emails
from dotenv import load_dotenv
load_dotenv()
mailer = emails.NewEmail(os.getenv('MAILERSEND_API_KEY'))
# define an empty dict to populate with mail values
mail_body = {}
mail_from = {
"name": "Your Name",
"email": "[email protected]",
}
recipients = [
{
"name": "Your Client",
"email": "[email protected]",
}
]
personalization = [
{
"email": "[email protected]",
"data": {
"var": "value",
"boolean": True,
"object": {
"key" : "object-value"
},
"number": 2,
"array": [
1,
2,
3
]
}
}
]
mailer.set_mail_from(mail_from, mail_body)
mailer.set_mail_to(recipients, mail_body)
mailer.set_subject("Hello from {$company}", mail_body)
mailer.set_html_content("This is the HTML content, {$name}", mail_body)
mailer.set_plaintext_content("This is the text content, {$name}", mail_body)
mailer.set_personalization(personalization, mail_body)
mailer.send(mail_body)
from mailersend import emails
import base64
from dotenv import load_dotenv
load_dotenv()
mailer = emails.NewEmail(os.getenv('MAILERSEND_API_KEY'))
# define an empty dict to populate with mail values
mail_body = {}
mail_from = {
"name": "Your Name",
"email": "[email protected]",
}
recipients = [
{
"name": "Your Client",
"email": "[email protected]",
}
]
variables = [
{
"email": "[email protected]",
"substitutions": [
{
"var": "foo",
"value": "bar"
},
]
}
]
attachment = open('path-to-file', 'rb')
att_read = attachment.read()
att_base64 = base64.b64encode(bytes(att_read))
attachments = [
{
"id": "my-attached-file",
"filename": "file.jpg",
"content": f"{att_base64.decode('ascii')}",
"disposition": "attachment"
}
]
mailer.set_mail_from(mail_from, mail_body)
mailer.set_mail_to(recipients, mail_body)
mailer.set_subject("Hello from {$foo}", mail_body)
mailer.set_html_content("This is the HTML content, {$foo}", mail_body)
mailer.set_plaintext_content("This is the text content, {$foo}", mail_body)
mailer.set_personalization(variables, mail_body)
mailer.set_attachments(attachments, mail_body)
mailer.send(mail_body)
from mailersend import email_verification
from dotenv import load_dotenv
load_dotenv()
mailer = email_verification.NewEmailVerification(os.getenv('MAILERSEND_API_KEY'))
mailer.get_all_lists()
from mailersend import email_verification
from dotenv import load_dotenv
load_dotenv()
mailer = email_verification.NewEmailVerification(os.getenv('MAILERSEND_API_KEY'))
email_verification_list_id = 123456
mailer.get_list(email_verification_list_id)
from mailersend import email_verification
from dotenv import load_dotenv
load_dotenv()
mailer = email_verification.NewEmailVerification(os.getenv('MAILERSEND_API_KEY'))
name = "My List"
emails = [
"[email protected]",
"[email protected]"
]
mailer.create_list(name, emails)
from mailersend import email_verification
from dotenv import load_dotenv
load_dotenv()
mailer = email_verification.NewEmailVerification(os.getenv('MAILERSEND_API_KEY'))
email_verification_list_id = 123456
mailer.verify_list(email_verification_list_id)
from mailersend import email_verification
from dotenv import load_dotenv
load_dotenv()
mailer = email_verification.NewEmailVerification(os.getenv('MAILERSEND_API_KEY'))
email_verification_list_id = 123456
mailer.get_list_results(email_verification_list_id)
from mailersend import emails
from dotenv import load_dotenv
load_dotenv()
mailer = emails.NewEmail(os.getenv('MAILERSEND_API_KEY'))
mail_list = [
{
"from": {
"email": "[email protected]",
"name": "Your Name"
},
"to": [
{
"email": "[email protected]",
"name": "Your Client"
}
],
"subject": "Subject",
"text": "This is the text content",
"html": "<p>This is the HTML content</p>",
},
{
"from": {
"email": "[email protected]",
"name": "Your Name"
},
"to": [
{
"email": "[email protected]",
"name": "Your Client"
}
],
"subject": "Subject",
"text": "This is the text content",
"html": "<p>This is the HTML content</p>",
}
]
print(mailer.send_bulk(mail_list))
from mailersend import emails
from dotenv import load_dotenv
load_dotenv()
mailer = emails.NewEmail(os.getenv('MAILERSEND_API_KEY'))
print(mailer.get_bulk_status_by_id("bulk-email-id"))
from mailersend import activity
from dotenv import load_dotenv
load_dotenv()
mailer = activity.NewActivity(os.getenv('MAILERSEND_API_KEY'))
mailer.get_domain_activity("domain-id")
from mailersend import activity
from dotenv import load_dotenv
load_dotenv()
mailer = activity.NewActivity(os.getenv('MAILERSEND_API_KEY'))
page = 1
limit = 20
date_from = 1623073576
date_to = 1623074976
events = [
"queued",
"sent",
"delivered",
"soft-bounced",
"hard-bounced",
"junk",
"opened",
"clicked",
"unsubscribed",
"spam_complaints",
]
mailer.get_domain_activity("domain-id", page, limit, date_from, date_to, events)
from mailersend import analytics
from dotenv import load_dotenv
load_dotenv()
mailer = analytics.NewAnalytics(os.getenv('MAILERSEND_API_KEY'))
date_from = 1623073576
date_to = 1623074976
events = [
"sent",
]
# optional arguments
domain_id = "domain-id"
group_by = "days"
mailer.get_activity_by_date(date_from, date_to, events, domain_id, group_by)
from mailersend import analytics
from dotenv import load_dotenv
load_dotenv()
mailer = analytics.NewAnalytics(os.getenv('MAILERSEND_API_KEY'))
date_from = 1623073576
date_to = 1623074976
# optional arguments
domain_id = "domain-id"
mailer.get_opens_by_country(date_from, date_to, domain_id)
from mailersend import analytics
from dotenv import load_dotenv
load_dotenv()
mailer = analytics.NewAnalytics(os.getenv('MAILERSEND_API_KEY'))
date_from = 1623073576
date_to = 1623074976
# optional arguments
domain_id = "domain-id"
mailer.get_opens_by_user_agent(date_from, date_to, domain_id)
from mailersend import analytics
from dotenv import load_dotenv
load_dotenv()
mailer = analytics.NewAnalytics(os.getenv('MAILERSEND_API_KEY'))
date_from = 1623073576
date_to = 1623074976
# optional arguments
domain_id = "domain-id"
mailer.get_opens_by_reading_environment(date_from, date_to, domain_id)
from mailersend import inbound_routing
from dotenv import load_dotenv
load_dotenv()
mailer = inbound_routing.NewInbound(os.getenv('MAILERSEND_API_KEY'))
print(mailer.get_inbound_routes())
from mailersend import inbound_routing
from dotenv import load_dotenv
load_dotenv()
mailer = inbound_routing.NewInbound(os.getenv('MAILERSEND_API_KEY'))
print(mailer.get_inbound_by_id("inbound-id"))
from mailersend import inbound_routing
from dotenv import load_dotenv
load_dotenv()
mailer = inbound_routing.NewInbound(os.getenv('MAILERSEND_API_KEY'))
options = {}
_catch_filter = {
"type": "catch_recipient",
"filters": [
{
"comparer": "equal",
"value": "test"
}
]
}
_match_filter = {
"type": "match_all"
}
_forwards = [
{
"type": "webhook",
"value": "https://www.mailersend.com/hook"
}
]
mailer.set_name("Example route", options)
mailer.set_domain_enabled(True, options)
mailer.set_inbound_domain("test.mailersend.com", options)
mailer.set_catch_filter(_catch_filter, options)
print(mailer.add_inbound_route())
from mailersend import inbound_routing
from dotenv import load_dotenv
load_dotenv()
route_id = "inbound-route-id"
mailer = inbound_routing.NewInbound(os.getenv('MAILERSEND_API_KEY'))
options = {}
_catch_filter = {
"type": "catch_recipient",
"filters": [
{
"comparer": "equal",
"value": "test"
}
]
}
_match_filter = {
"type": "match_all"
}
_forwards = [
{
"type": "webhook",
"value": "https://www.mailersend.com/hook"
}
]
mailer.set_name("Example route", options)
mailer.set_domain_enabled(True, options)
mailer.set_inbound_domain("test.mailersend.com", options)
mailer.set_catch_filter(_catch_filter, options)
print(mailer.update_inbound_route(route_id))
from mailersend import inbound_routing
from dotenv import load_dotenv
load_dotenv()
route_id = "inbound-route-id"
mailer = inbound_routing.NewInbound(os.getenv('MAILERSEND_API_KEY'))
print(mailer.delete_inbound_route(route_id))
from mailersend import domains
from dotenv import load_dotenv
load_dotenv()
mailer = domains.NewDomain(os.getenv('MAILERSEND_API_KEY'))
mailer.get_domains()
from mailersend import domains
from dotenv import load_dotenv
load_dotenv()
mailer = domains.NewDomain(os.getenv('MAILERSEND_API_KEY'))
mailer.get_domain_by_id("domain-id")
from mailersend import domains
from mailersend import utils
from dotenv import load_dotenv
load_dotenv()
mailer = domains.NewDomain(os.getenv('MAILERSEND_API_KEY'))
helper = utils.NewHelper(os.getenv('MAILERSEND_API_KEY'))
mailer.get_domain_by_id(helper.get_id_by_name("domains","domain-name"))
You can find a full list of settings here.
from mailersend import domains
from dotenv import load_dotenv
load_dotenv()
mailer = domains.NewDomain(os.getenv('MAILERSEND_API_KEY'))
domain_data = {
"name": "mydomain.com",
"return_path_subdomain": "rpsubdomain",
"custom_tracking_subdomain": "ctsubdomain",
"inbound_routing_subdomain": "irsubdomain"
}
mailer.add_domain("name", domain_data)
from mailersend import domains
from dotenv import load_dotenv
load_dotenv()
mailer = domains.NewDomain(os.getenv('MAILERSEND_API_KEY'))
mailer.delete_domain("domain-id")
from mailersend import domains
from dotenv import load_dotenv
load_dotenv()
mailer = domains.NewDomain(os.getenv('MAILERSEND_API_KEY'))
mailer.get_recipients_for_domain("domain-id")
You can find a full list of settings here.
from mailersend import domains
from dotenv import load_dotenv
load_dotenv()
mailer = domains.NewDomain(os.getenv('MAILERSEND_API_KEY'))
domain_data = {
"send_paused": True,
"track_clicks": True,
"track_opens": True,
"track_unsubscribe": True,
"track_unsubscribe_html": "<p>Click to <a href='{$unsubscribe}'>unsubscribe</a></p>",
"track_unsubscribe_plain": "Click to unsubscribe: {$unsubscribe}",
"track_content": True,
"custom_tracking_enabled": True,
"custom_tracking_subdomain": "email",
"precedence_bulk": False
}
mailer.update_domain_setting("domain-id", domain_data)
from mailersend import domains
from dotenv import load_dotenv
load_dotenv()
mailer = domains.NewDomain(os.getenv('MAILERSEND_API_KEY'))
mailer.get_dns_records("domain-id")
from mailersend import domains
from dotenv import load_dotenv
load_dotenv()
mailer = domains.NewDomain(os.getenv('MAILERSEND_API_KEY'))
mailer.verify_domain("domain-id")
from mailersend import messages
from dotenv import load_dotenv
load_dotenv()
mailer = messages.NewMessage(os.getenv('MAILERSEND_API_KEY'))
mailer.get_messages()
from mailersend import messages
from dotenv import load_dotenv
load_dotenv()
mailer = messages.NewMessage(os.getenv('MAILERSEND_API_KEY'))
mailer.get_message_by_id("message-id")
from mailersend import scheduled_messages
from dotenv import load_dotenv
load_dotenv()
mailer = scheduled_messages.NewMessageSchedule(os.getenv('MAILERSEND_API_KEY'))
print(mailer.get_scheduled_messages())
from mailersend import scheduled_messages
from dotenv import load_dotenv
load_dotenv()
mailer = scheduled_messages.NewMessageSchedule(os.getenv('MAILERSEND_API_KEY'))
print(mailer.get_scheduled_message_by_id("scheduled-message-id"))
from mailersend import scheduled_messages
from dotenv import load_dotenv
load_dotenv()
mailer = scheduled_messages.NewMessageSchedule(os.getenv('MAILERSEND_API_KEY'))
print(mailer.delete_scheduled_message("scheduled-message-id"))
from mailersend import recipients
from dotenv import load_dotenv
load_dotenv()
mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY'))
mailer.get_recipients()
from mailersend import recipients
from dotenv import load_dotenv
load_dotenv()
mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY'))
mailer.get_recipient_by_id("recipient-id")
from mailersend import recipients
from dotenv import load_dotenv
load_dotenv()
mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY'))
mailer.delete_recipient("recipient-id")
from mailersend import recipients
from dotenv import load_dotenv
load_dotenv()
mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY'))
mailer.get_recipients_from_blocklist("domain-id")
from mailersend import recipients
from dotenv import load_dotenv
load_dotenv()
mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY'))
mailer.get_hard_bounces("domain-id")
from mailersend import recipients
from dotenv import load_dotenv
load_dotenv()
mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY'))
mailer.get_spam_complaints("domain-id")
from mailersend import recipients
from dotenv import load_dotenv
load_dotenv()
mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY'))
mailer.get_unsubscribes("domain-id")
Using recipients:
from mailersend import recipients
from dotenv import load_dotenv
load_dotenv()
mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY'))
recipient_list = [
'[email protected]'
]
mailer.add_to_blocklist("domain-id", recipients=recipient_list)
Using patterns:
from mailersend import recipients
from dotenv import load_dotenv
load_dotenv()
mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY'))
recipient_patterns = [
'*@client.com'
]
mailer.add_to_blocklist("domain-id", patterns=recipient_patterns)
from mailersend import recipients
from dotenv import load_dotenv
load_dotenv()
mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY'))
recipient_list = [
"[email protected]"
]
mailer.add_hard_bounces("domain-id", recipient_list)
from mailersend import recipients
from dotenv import load_dotenv
load_dotenv()
mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY'))
recipient_list = [
"[email protected]"
]
mailer.add_spam_complaints("domain-id", recipient_list)
from mailersend import recipients
from dotenv import load_dotenv
load_dotenv()
mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY'))
recipient_list = [
"[email protected]"
]
mailer.add_unsubscribes("domain-id", recipient_list)
from mailersend import recipients
from dotenv import load_dotenv
load_dotenv()
mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY'))
recipient_list = [
"[email protected]"
]
mailer.delete_from_blocklist("domain-id", recipient_list)
from mailersend import recipients
from dotenv import load_dotenv
load_dotenv()
mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY'))
recipient_list = [
"[email protected]"
]
mailer.delete_hard_bounces("domain-id", recipient_list)
from mailersend import recipients
from dotenv import load_dotenv
load_dotenv()
mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY'))
recipient_list = [
"[email protected]"
]
mailer.delete_spam_complaints("domain-id", recipient_list)
from mailersend import recipients
from dotenv import load_dotenv
load_dotenv()
mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY'))
recipient_list = [
"[email protected]"
]
mailer.delete_unsubscribes("domain-id", recipient_list)
from mailersend import tokens
from dotenv import load_dotenv
load_dotenv()
mailer = tokens.NewToken(os.getenv('MAILERSEND_API_KEY'))
scopes = ["email_full", "analytics_read"]
mailer.create_token("my-token", scopes)
Because of security reasons, we only allow access token appearance once during creation. In order to see the access token created you can do:
from mailersend import tokens
from dotenv import load_dotenv
load_dotenv()
mailer = tokens.NewToken(os.getenv('MAILERSEND_API_KEY'))
scopes = ["email_full", "analytics_read"]
print(mailer.create_token("my-token", scopes))
from mailersend import tokens
from dotenv import load_dotenv
load_dotenv()
mailer = tokens.NewToken(os.getenv('MAILERSEND_API_KEY'))
# pause
mailer.update_token("my-token")
# unpause
mailer.update_token("my-token", pause=False)
from mailersend import tokens
from dotenv import load_dotenv
load_dotenv()
mailer = tokens.NewToken(os.getenv('MAILERSEND_API_KEY'))
mailer.delete_token("token-id")
from mailersend import templates
from dotenv import load_dotenv
load_dotenv()
mailer = templates.NewTemplate(os.getenv('MAILERSEND_API_KEY'))
mailer.get_templates()
from mailersend import templates
from dotenv import load_dotenv
load_dotenv()
mailer = templates.NewTemplate(os.getenv('MAILERSEND_API_KEY'))
template_id = 1234
mailer.get_template_by_id()
from mailersend import templates
from dotenv import load_dotenv
load_dotenv()
mailer = templates.NewTemplate(os.getenv('MAILERSEND_API_KEY'))
template_id = 1234
mailer.delete_template()
from mailersend import webhooks
from dotenv import load_dotenv
load_dotenv()
mailer = webhooks.NewWebhook(os.getenv('MAILERSEND_API_KEY'))
mailer.get_webhooks("domain-id")
from mailersend import webhooks
from dotenv import load_dotenv
load_dotenv()
mailer = webhooks.NewWebhook(os.getenv('MAILERSEND_API_KEY'))
mailer.get_webhook_by_id("webhook-id")
from mailersend import webhooks
from dotenv import load_dotenv
load_dotenv()
webhookEvents = ['activity.sent', 'activity.delivered']
webhook = webhooks.NewWebhook(os.getenv('MAILERSEND_API_KEY'))
webhook.set_webhook_url("https://webhooks.mysite.com")
webhook.set_webhook_name("my first webhook")
webhook.set_webhook_events(webhookEvents)
webhook.set_webhook_domain("domain-id")
webhook.create_webhook()
from mailersend import webhooks
from dotenv import load_dotenv
load_dotenv()
webhookEvents = ['activity.sent', 'activity.delivered']
webhook = webhooks.NewWebhook(os.getenv('MAILERSEND_API_KEY'))
webhook.set_webhook_url("https://webhooks.mysite.com")
webhook.set_webhook_name("my first webhook")
webhook.set_webhook_events(webhookEvents)
webhook.set_webhook_domain("domain-id")
webhook.set_webhook_enabled(False)
webhook.create_webhook()
from mailersend import webhooks
from dotenv import load_dotenv
load_dotenv()
webhook = webhooks.NewWebhook(os.getenv('MAILERSEND_API_KEY'))
webhook.update_webhook("webhook-id", "name", "a new webhook name")
from mailersend import webhooks
from dotenv import load_dotenv
load_dotenv()
webhook = webhooks.NewWebhook(os.getenv('MAILERSEND_API_KEY'))
webhook.update_webhook("webhook-id", "enabled", False)
from mailersend import webhooks
from dotenv import load_dotenv
load_dotenv()
webhook = webhooks.NewWebhook(os.getenv('MAILERSEND_API_KEY'))
webhook.delete_webhook("webhook-id")
Without personalization:
from mailersend import sms_sending
from dotenv import load_dotenv
load_dotenv()
mailer = sms_sending.NewSmsSending(os.getenv('MAILERSEND_API_KEY'))
# Number belonging to your account in E164 format
number_from = "+11234567890"
# You can add up to 50 recipient numbers
numbers_to = [
"+11234567891",
"+11234567892"
]
text = "This is the text content"
print(mailer.send_sms(number_from, numbers_to, text))
With personalization:
from mailersend import sms_sending
from dotenv import load_dotenv
load_dotenv()
mailer = sms_sending.NewSmsSending(os.getenv('MAILERSEND_API_KEY'))
# Number belonging to your account in E164 format
number_from = "+11234567890"
# You can add up to 50 recipient numbers
numbers_to = [
"+11234567891",
"+11234567892"
]
text = "Hi {{name}} how are you?"
personalization = [
{
"phone_number": "+11234567891",
"data": {
"name": "Mike"
}
},
{
"phone_number": "+11234567892",
"data": {
"name": "John"
}
}
]
print(mailer.send_sms(number_from, numbers_to, text, personalization))
from mailersend import sms_activity
from dotenv import load_dotenv
load_dotenv()
mailer = sms_activity.NewSmsActivity(os.getenv('MAILERSEND_API_KEY'))
#Request parameters
sms_number_id = 1365743
date_from = 1655157601
date_to = 1655158601
status = ["queued", "failed"]
page = 1
limit = 200
print(mailer.get_activities(sms_number_id=sms_number_id, date_from=date_from, date_to=date_to, status=status, page=page, limit=limit))
from mailersend import sms_activity
from dotenv import load_dotenv
load_dotenv()
mailer = sms_activity.NewSmsActivity(os.getenv('MAILERSEND_API_KEY'))
#Request parameters
sms_message_id = "62a9d12b07852eaf2207b417"
print(mailer.get_activity(sms_message_id))
from mailersend import sms_phone_numbers
from dotenv import load_dotenv
load_dotenv()
mailer = sms_phone_numbers.NewSmsNumbers(os.getenv('MAILERSEND_API_KEY'))
#Request parameters
paused = False
print(mailer.get_phone_numbers(paused))
from mailersend import sms_phone_numbers
from dotenv import load_dotenv
load_dotenv()
mailer = sms_phone_numbers.NewSmsNumbers(os.getenv('MAILERSEND_API_KEY'))
#Request parameters
sms_number_id = "9pq3enl6842vwrzx"
print(mailer.get_phone_number(sms_number_id))
from mailersend import sms_phone_numbers
from dotenv import load_dotenv
load_dotenv()
mailer = sms_phone_numbers.NewSmsNumbers(os.getenv('MAILERSEND_API_KEY'))
#Request parameters
sms_number_id = "9pq3enl6842vwrzx"
paused = True
print(mailer.update_phone_number(sms_number_id, paused))
from mailersend import sms_phone_numbers
from dotenv import load_dotenv
load_dotenv()
mailer = sms_phone_numbers.NewSmsNumbers(os.getenv('MAILERSEND_API_KEY'))
#Request parameters
sms_number_id = "9pq3enl6842vwrzx"
print(mailer.delete_phone_number(sms_number_id))
from mailersend import sms_recipients
from dotenv import load_dotenv
load_dotenv()
mailer = sms_recipients.NewSmsRecipients(os.getenv('MAILERSEND_API_KEY'))
#Request parameters
sms_number_id = "9pq3enl6842vwrzx"
status = "active"
print(mailer.get_recipients(status=status, sms_number_id=sms_number_id))
from mailersend import sms_recipients
from dotenv import load_dotenv
load_dotenv()
mailer = sms_recipients.NewSmsRecipients(os.getenv('MAILERSEND_API_KEY'))
#Request parameters
sms_recipient_id = "627e756fd30078fb2208cc87"
print(mailer.get_recipient(sms_recipient_id))
from mailersend import sms_recipients
from dotenv import load_dotenv
load_dotenv()
mailer = sms_recipients.NewSmsRecipients(os.getenv('MAILERSEND_API_KEY'))
#Request parameters
sms_recipient_id = "627e756fd30078fb2208cc87"
status = "opt_out"
print(mailer.update_recipient(sms_recipient_id, status))
from mailersend import sms_messages
from dotenv import load_dotenv
load_dotenv()
mailer = sms_messages.NewSmsMessages(os.getenv('MAILERSEND_API_KEY'))
print(mailer.get_messages())
from mailersend import sms_messages
from dotenv import load_dotenv
load_dotenv()
#Request parameters
sms_message_id = "627e756fd30078fb2208cc87"
mailer = sms_messages.NewSmsMessages(os.getenv('MAILERSEND_API_KEY'))
print(mailer.get_message(sms_message_id))
from mailersend import sms_webhooks
from dotenv import load_dotenv
load_dotenv()
mailer = sms_webhooks.NewSmsWebhooks(os.getenv('MAILERSEND_API_KEY'))
#Request parameters
sms_number_id = "9pq3enl6842vwrzx"
print(mailer.get_webhooks(sms_number_id))
from mailersend import sms_webhooks
from dotenv import load_dotenv
load_dotenv()
mailer = sms_webhooks.NewSmsWebhooks(os.getenv('MAILERSEND_API_KEY'))
#Request parameters
sms_webhook_id = "aaui13enl12f2vzx"
print(mailer.get_webhook(sms_webhook_id))
from mailersend import sms_webhooks
from dotenv import load_dotenv
load_dotenv()
mailer = sms_webhooks.NewSmsWebhooks(os.getenv('MAILERSEND_API_KEY'))
#Request parameters
url = "https://webhook-url.com"
name = "My Webhook Name"
events = ["sms.sent"]
sms_number_id = "9pq3enl6842vwrzx"
enabled = True
print(mailer.create_webhook(url, name, events, sms_number_id, enabled))
from mailersend import sms_webhooks
from dotenv import load_dotenv
load_dotenv()
mailer = sms_webhooks.NewSmsWebhooks(os.getenv('MAILERSEND_API_KEY'))
#Request parameters
url = "https://different-url.com"
name = "New Webhook Name"
events = ["sms.sent", "sms.failed"],
sms_webhook_id = "aaui13enl12f2vzx"
enabled = False
print(mailer.update_webhook(sms_webhook_id, url, name, events, enabled))
from mailersend import sms_webhooks
from dotenv import load_dotenv
load_dotenv()
mailer = sms_webhooks.NewSmsWebhooks(os.getenv('MAILERSEND_API_KEY'))
#Request parameters
sms_webhook_id = "aaui13enl12f2vzx"
print(mailer.delete_webhook(sms_webhook_id))
from mailersend import sms_webhooks
from dotenv import load_dotenv
load_dotenv()
mailer = sms_webhooks.NewSmsWebhooks(os.getenv('MAILERSEND_API_KEY'))
#Request parameters
sms_number_id = "9pq3enl6842vwrzx"
print(mailer.get_webhooks(sms_number_id))
from mailersend import sms_inbounds
from dotenv import load_dotenv
load_dotenv()
mailer = sms_inbounds.NewSmsInbounds(os.getenv('MAILERSEND_API_KEY'))
#Request parameters
sms_number_id = "123456789"
enabled = True
page = 1
limit = 25
print(mailer.get_inbound_routes(sms_number_id, enabled, page, limit))
from mailersend import sms_inbounds
from dotenv import load_dotenv
load_dotenv()
mailer = sms_inbounds.NewSmsInbounds(os.getenv('MAILERSEND_API_KEY'))
#Request parameters
sms_inbound_id = "123456789"
print(mailer.get_inbound_route(sms_inbound_id))
from mailersend import sms_inbounds
from dotenv import load_dotenv
load_dotenv()
mailer = sms_inbounds.NewSmsInbounds(os.getenv('MAILERSEND_API_KEY'))
#Request parameters
sms_number_id = "123456789"
name = "My route"
forward_url = "https://some.url"
filter = {
"comparer": "equal",
"value": "START"
}
enabled = True
print(mailer.create_inbound_route(sms_number_id, name, forward_url, filter, enabled))
from mailersend import sms_inbounds
from dotenv import load_dotenv
load_dotenv()
mailer = sms_inbounds.NewSmsInbounds(os.getenv('MAILERSEND_API_KEY'))
#Request parameters
sms_number_id = "123456789"
name = "New name"
forward_url = "https://news.url"
filter = {
"comparer": "contains",
"value": "some-value"
}
enabled = True
print(mailer.update_inbound_route(sms_number_id, name, forward_url, filter, enabled))
from mailersend import sms_inbounds
from dotenv import load_dotenv
load_dotenv()
mailer = sms_inbounds.NewSmsInbounds(os.getenv('MAILERSEND_API_KEY'))
#Request parameters
sms_inbound_id = "123456789"
print(mailer.delete_inbound_route()(sms_inbound_id))
from mailersend import sender_identities
from dotenv import load_dotenv
load_dotenv()
mailer = sender_identities.NewSenderIdentity(os.getenv('MAILERSEND_API_KEY'))
print(mailer.get_identities())
from mailersend import sender_identities
from dotenv import load_dotenv
load_dotenv()
mailer = sender_identities.NewSenderIdentity(os.getenv('MAILERSEND_API_KEY'))
print(mailer.get_identity(identity_id="12345"))
from mailersend import sender_identities
from dotenv import load_dotenv
load_dotenv()
mailer = sender_identities.NewSenderIdentity(os.getenv('MAILERSEND_API_KEY'))
print(mailer.create_identity(
domain_id="123456",
name="John Doe",
email="[email protected]",
reply_to_email="[email protected]",
reply_to_name="Doe John",
add_note=True,
personal_note="My awesome note",
))
from mailersend import sender_identities
from dotenv import load_dotenv
load_dotenv()
mailer = sender_identities.NewSenderIdentity(os.getenv('MAILERSEND_API_KEY'))
print(mailer.update_identity(
identity_id="123456",
domain_id="123456",
name="Abe Doe",
email="[email protected]",
reply_to_email="[email protected]",
reply_to_name="Doe Abe",
add_note=False
))
from mailersend import sender_identities
from dotenv import load_dotenv
load_dotenv()
mailer = sender_identities.NewSenderIdentity(os.getenv('MAILERSEND_API_KEY'))
print(mailer.delete_identity(identity_id="123456"))
from mailersend import api_quota
from dotenv import load_dotenv
load_dotenv()
mailer = api_quota.NewApiQuota(os.getenv('MAILERSEND_API_KEY'))
print(mailer.get_quota())
Print the output of mailer.send()
to view status code and errors.
from mailersend import emails
mailer = emails.NewEmail()
mail_body = {}
print(mailer.send(mail_body))
TBD
Feature group | Endpoint | Available |
---|---|---|
Activity | GET activity |
✅ |
Analytics | GET analytics |
✅ |
Domains | {GET, PUT, DELETE} domains |
✅ |
Emails | POST send |
✅ |
Messages | GET messages |
✅ |
Recipients | {GET, DELETE} recipients |
✅ |
Templates | {GET, DELETE} templates |
✅ |
Tokens | {POST, PUT, DELETE} tokens |
✅ |
Webhooks | {GET, POST, PUT, DELETE} webhooks |
✅ |
SMS Sending | {POST} sms |
✅ |
SMS Activity | {GET} sms-activity |
✅ |
SMS Phone numbers | {GET, PUT, DELETE} sms-numbers |
✅ |
SMS Recipients | {GET, PUT} sms-recipients |
✅ |
SMS Messages | {GET} sms-messages |
✅ |
SMS Webhooks | {GET, POST, PUT, DELETE} sms-webhooks |
✅ |
SMS Inbounds | {GET, POST, PUT, DELETE} sms-inbounds |
✅ |
Sender Identities | {GET, POST, PUT, DELETE} identities |
✅ |
API Quota | {GET} api-quota |
✅ |
If, at the moment, some endpoint is not available, please use other available tools to access it. Refer to official API docs for more info.
In case you find any bugs, submit an issue directly here in GitHub.
You are welcome to create SDK for any other programming language.
If you have any troubles using our API or SDK free to contact our support by email [email protected]
The official documentation is at https://developers.mailersend.com