diff options
Diffstat (limited to '.venv/lib/python3.12/site-packages/mailersend-0.5.8.dist-info')
5 files changed, 2242 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/mailersend-0.5.8.dist-info/INSTALLER b/.venv/lib/python3.12/site-packages/mailersend-0.5.8.dist-info/INSTALLER new file mode 100644 index 00000000..a1b589e3 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/mailersend-0.5.8.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/.venv/lib/python3.12/site-packages/mailersend-0.5.8.dist-info/LICENSE b/.venv/lib/python3.12/site-packages/mailersend-0.5.8.dist-info/LICENSE new file mode 100644 index 00000000..8329e93d --- /dev/null +++ b/.venv/lib/python3.12/site-packages/mailersend-0.5.8.dist-info/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 MailerSend + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/.venv/lib/python3.12/site-packages/mailersend-0.5.8.dist-info/METADATA b/.venv/lib/python3.12/site-packages/mailersend-0.5.8.dist-info/METADATA new file mode 100644 index 00000000..0f2d5282 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/mailersend-0.5.8.dist-info/METADATA @@ -0,0 +1,2161 @@ +Metadata-Version: 2.1 +Name: mailersend +Version: 0.5.8 +Summary: The official MailerSend Python SDK +Keywords: mailersend,mail +Author: Igor Hrček +Author-email: igor@mailerlite.com +Requires-Python: >=3.8,<4.0 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Requires-Dist: requests (>=2.25.0,<3.0.0) +Description-Content-Type: text/markdown + +<a href="https://www.mailersend.com"><img src="https://www.mailersend.com/images/logo.svg" width="200px"/></a> + +MailerSend Python SDK + +[](./LICENSE) + +# Table of Contents +- [Table of Contents](#table-of-contents) +- [Installation](#installation) + - [Requirements](#requirements) + - [Authentication](#authentication) +- [Usage](#usage) + - [Email](#email) + - [Send an email](#send-an-email) + - [Add CC, BCC recipients](#add-cc-bcc-recipients) + - [Send a template-based email](#send-a-template-based-email) + - [Personalization](#personalization) + - [Send email with attachment](#send-email-with-attachment) + - [Email Verification](#email-verification) + - [Get all email verification lists](#get-all-email-verification-lists) + - [Get a single email verification list](#get-a-single-email-verification-list) + - [Create a email verification list](#create-a-email-verification-list) + - [Verify a list](#verify-a-list) + - [Get list results](#get-list-results) + - [Bulk Email](#bulk-email) + - [Send bulk email](#send-bulk-email) + - [Get bulk email status](#get-bulk-email-status) + - [Activity](#activity) + - [Get a list of activities (simple)](#get-a-list-of-activities-simple) + - [Get a list of activities (full)](#get-a-list-of-activities-full) + - [Analytics](#analytics) + - [Activity data by date](#activity-data-by-date) + - [Opens by country](#opens-by-country) + - [Opens by user-agent name](#opens-by-user-agent-name) + - [Opens by reading environment](#opens-by-reading-environment) + - [Inbound Routes](#inbound-routes) + - [Get a list of inbound routes](#get-a-list-of-inbound-routes) + - [Get a single inbound route](#get-a-single-inbound-route) + - [Add an inbound route](#add-an-inbound-route) + - [Update an inbound route](#update-an-inbound-route) + - [Delete an inbound route](#delete-an-inbound-route) + - [Domains](#domains) + - [Get a list of domains](#get-a-list-of-domains) + - [Get a single domain](#get-a-single-domain) + - [Get a single domain using helper function](#get-a-single-domain-using-helper-function) + - [Add a domain](#add-a-domain) + - [Delete a domain](#delete-a-domain) + - [Get a list of recipients per domain](#get-a-list-of-recipients-per-domain) + - [Update domain settings](#update-domain-settings) + - [Get DNS Records](#get-dns-records) + - [Verify a domain](#verify-a-domain) + - [Messages](#messages) + - [Get a list of messages](#get-a-list-of-messages) + - [Get a single message](#get-a-single-message) + - [Scheduled messages](#scheduled-messages) + - [Get a list of scheduled messages](#get-a-list-of-scheduled-messages) + - [Get a single scheduled message](#get-a-single-scheduled-message) + - [Delete a scheduled message](#delete-a-scheduled-message) + - [Recipients](#recipients) + - [Get a list of recipients](#get-a-list-of-recipients) + - [Get a single recipient](#get-a-single-recipient) + - [Delete a recipient](#delete-a-recipient) + - [Get recipients from a blocklist](#get-recipients-from-a-blocklist) + - [Get recipients from hard bounces](#get-recipients-from-hard-bounces) + - [Get recipients from spam complaints](#get-recipients-from-spam-complaints) + - [Get recipients from unsubscribes](#get-recipients-from-unsubscribes) + - [Add recipients to blocklist](#add-recipients-to-blocklist) + - [Add hard bounced recipients](#add-hard-bounced-recipients) + - [Add spam complaints](#add-spam-complaints) + - [Add recipients to unsubscribe list](#add-recipients-to-unsubscribe-list) + - [Delete recipients from blocklist](#delete-recipients-from-blocklist) + - [Delete hard bounced recipients](#delete-hard-bounced-recipients) + - [Delete spam complaints](#delete-spam-complaints) + - [Delete recipients from unsubscribe list](#delete-recipients-from-unsubscribe-list) + - [Tokens](#tokens) + - [Create a token](#create-a-token) + - [Pause / Unpause Token](#pause--unpause-token) + - [Delete a Token](#delete-a-token) + - [Templates](#templates) + - [Get a list of templates](#get-a-list-of-templates) + - [Get a single template](#get-a-single-template) + - [Delete template](#delete-template) + - [Webhooks](#webhooks) + - [Get a list of webhooks](#get-a-list-of-webhooks) + - [Get a single webhook](#get-a-single-webhook) + - [Create a Webhook](#create-a-webhook) + - [Create a disabled webhook](#create-a-disabled-webhook) + - [Update a Webhook](#update-a-webhook) + - [Disable/Enable a Webhook](#disableenable-a-webhook) + - [Delete a Webhook](#delete-a-webhook) + - [SMS](#sms) + - [Sending SMS messages](#sending-sms-messages) + - [SMS Activity](#sms-activity) + - [Get a list of activities](#get-a-list-of-activities) + - [Get activity of a single message](#get-activity-of-a-single-message) + - [SMS Phone Numbers](#sms-phone-numbers) + - [Get a list of SMS phone numbers](#get-a-list-of-sms-phone-numbers) + - [Get an SMS phone number](#get-an-sms-phone-number) + - [Update a single SMS phone number](#update-a-single-sms-phone-number) + - [Delete an SMS phone number](#delete-an-sms-phone-number) + - [SMS Recipients](#sms-recipients) + - [Get a list of SMS recipients](#get-a-list-of-sms-recipients) + - [Get an SMS recipient](#get-an-sms-recipient) + - [Update a single SMS recipient](#update-a-single-sms-recipient) + - [SMS Messages](#sms-messages) + - [Get a list of SMS messages](#get-a-list-of-sms-messages) + - [Get an SMS message](#get-an-sms-message) + - [SMS Webhooks](#sms-webhooks) + - [Get a list of SMS webhooks](#get-a-list-of-sms-webhooks) + - [Get a single SMS webhook](#get-a-single-sms-webhook) + - [Create an SMS webhook](#create-an-sms-webhook) + - [Update a single SMS webhook](#update-a-single-sms-webhook) + - [Delete an SMS webhook](#delete-an-sms-webhook) + - [Get a list of SMS webhooks](#get-a-list-of-sms-webhooks-1) + - [SMS Inbouds](#sms-inbouds) + - [Get a list of SMS inbound routes](#get-a-list-of-sms-inbound-routes) + - [Get a single SMS inbound route](#get-a-single-sms-inbound-route) + - [Create an SMS inbound route](#create-an-sms-inbound-route) + - [Update an SMS inbound route](#update-an-sms-inbound-route) + - [Delete an SMS inbound route](#delete-an-sms-inbound-route) + - [Sender Identities](#sender-identities) + - [Get a list of sender identities](#get-a-list-of-sender-identities) + - [Get a sender identity](#get-a-sender-identity) + - [Create a sender identity](#create-a-sender-identity) + - [Update a sender identity](#update-a-sender-identity) + - [Delete a sender identity](#delete-a-sender-identity) + - [API Quota](#api-quota) + - [Get API Quota](#get-api-quota) +- [Troubleshooting](#troubleshooting) + - [Emails not being sent](#emails-not-being-sent) +- [Testing](#testing) +- [Available endpoints](#available-endpoints) +- [Support and Feedback](#support-and-feedback) +- [License](#license) + +<a name="installation"></a> + +# Installation + +``` +$ python -m pip install mailersend +``` + +## Requirements + +- Python > 3.6.1 +- Python `pip` +- An API Key from [mailersend.com](https://www.mailersend.com) + +## Authentication + +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 +```python +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": "your@domain.com", +} + +recipients = [ + { + "name": "Your Client", + "email": "your@client.com", + } +] + +reply_to = { + "name": "Name", + "email": "reply@domain.com", +} + +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 +```python +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": "your@domain.com", +} + +recipients = [ + { + "name": "Your Client", + "email": "your@client.com", + } +] + +reply_to = { + "name": "Name", + "email": "reply@domain.com", +} + +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) +``` + +# Usage + +## Email + +### Send an email + +```python +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": "your@domain.com", +} + +recipients = [ + { + "name": "Your Client", + "email": "your@client.com", + } +] + +reply_to = { + "name": "Name", + "email": "reply@domain.com", +} + +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) +``` + +### Add CC, BCC recipients + +```python +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": "your@domain.com", +} + +recipients = [ + { + "name": "Your Client", + "email": "your@client.com", + } +] + +cc = [ + { + "name": "CC", + "email": "cc@client.com" + } +] + +bcc = [ + { + "name": "BCC", + "email": "bcc@client.com" + } +] + +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) +``` + +### Send a template-based email + +```python +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": "your@domain.com", +} + +recipients = [ + { + "name": "Your Client", + "email": "your@client.com", + } +] + + +variables = [ + { + "email": "your@client.com", + "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) +``` + +### Personalization + +```python +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": "your@domain.com", +} + +recipients = [ + { + "name": "Your Client", + "email": "your@client.com", + } +] + +personalization = [ + { + "email": "test@mailersend.com", + "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) +``` + +### Send email with attachment + +```python +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": "your@domain.com", +} + +recipients = [ + { + "name": "Your Client", + "email": "your@client.com", + } +] + +variables = [ + { + "email": "your@client.com", + "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) +``` + +## Email Verification + +### Get all email verification lists + +```python +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() +``` + +### Get a single email verification list + +```python +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) +``` + +### Create a email verification list + +```python +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 = [ + "some@email.com", + "another@email.com" +] + +mailer.create_list(name, emails) +``` + +### Verify a list + +```python +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) +``` + +### Get list results + +```python +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) +``` + + +## Bulk Email + +### Send bulk email + +```python +from mailersend import emails +from dotenv import load_dotenv + +load_dotenv() + +mailer = emails.NewEmail(os.getenv('MAILERSEND_API_KEY')) + +mail_list = [ + { + "from": { + "email": "your@domain.com", + "name": "Your Name" + }, + "to": [ + { + "email": "your@client.com", + "name": "Your Client" + } + ], + "subject": "Subject", + "text": "This is the text content", + "html": "<p>This is the HTML content</p>", + }, + { + "from": { + "email": "your@domain.com", + "name": "Your Name" + }, + "to": [ + { + "email": "your@client.com", + "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)) +``` + +### Get bulk email status + +```python +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")) +``` + +<a name="activity"></a> + +## Activity + +### Get a list of activities (simple) + +```python +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") +``` + +### Get a list of activities (full) + +```python +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) +``` + +## Analytics + +### Activity data by date + +```python +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) +``` + +### Opens by country + +```python +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) +``` + +### Opens by user-agent name + +```python +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) +``` + +### Opens by reading environment + +```python +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) +``` + +## Inbound Routes + +### Get a list of inbound routes + +```python +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()) +``` + +### Get a single inbound route + +```python +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")) +``` + +### Add an inbound route + +```python +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()) +``` + +### Update an inbound route + +```python +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)) +``` + +### Delete an inbound route + +```python +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)) +``` + +## Domains + +### Get a list of domains + +```python +from mailersend import domains +from dotenv import load_dotenv + +load_dotenv() + +mailer = domains.NewDomain(os.getenv('MAILERSEND_API_KEY')) + +mailer.get_domains() +``` + +### Get a single domain + +```python +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") +``` + +### Get a single domain using helper function + +```python +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")) +``` + +### Add a domain + +You can find a full list of settings [here](https://developers.mailersend.com/api/v1/domains.html#request-parameters-3). + +```python +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) +``` + + +### Delete a domain + +```python +from mailersend import domains +from dotenv import load_dotenv + +load_dotenv() + +mailer = domains.NewDomain(os.getenv('MAILERSEND_API_KEY')) + +mailer.delete_domain("domain-id") +``` + +### Get a list of recipients per domain + +```python +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") +``` + +### Update domain settings + +You can find a full list of settings [here](https://developers.mailersend.com/api/v1/domains.html#request-body). + +```python +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) +``` + +### Get DNS Records + +```python +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") +``` + +### Verify a domain + +```python +from mailersend import domains +from dotenv import load_dotenv + +load_dotenv() + +mailer = domains.NewDomain(os.getenv('MAILERSEND_API_KEY')) + +mailer.verify_domain("domain-id") +``` + + +## Messages + +### Get a list of messages + +```python +from mailersend import messages +from dotenv import load_dotenv + +load_dotenv() + +mailer = messages.NewMessage(os.getenv('MAILERSEND_API_KEY')) + +mailer.get_messages() +``` + +### Get a single message + +```python +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") +``` + +## Scheduled messages + +### Get a list of scheduled messages + +```python +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()) +``` + +### Get a single scheduled message + +```python +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")) +``` + +### Delete a scheduled message + +```python +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")) +``` + +## Recipients + +### Get a list of recipients + +```python +from mailersend import recipients +from dotenv import load_dotenv + +load_dotenv() + +mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY')) + +mailer.get_recipients() +``` + +### Get a single recipient + +```python +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") +``` + +### Delete a recipient + +```python +from mailersend import recipients +from dotenv import load_dotenv + +load_dotenv() + +mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY')) + +mailer.delete_recipient("recipient-id") +``` + +### Get recipients from a blocklist + +```python +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") +``` + +### Get recipients from hard bounces + +```python +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") +``` + +### Get recipients from spam complaints + +```python +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") +``` + +### Get recipients from unsubscribes + +```python +from mailersend import recipients +from dotenv import load_dotenv + +load_dotenv() + +mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY')) + +mailer.get_unsubscribes("domain-id") +``` + +### Add recipients to blocklist + +Using recipients: + +```python +from mailersend import recipients +from dotenv import load_dotenv + +load_dotenv() + +mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY')) + +recipient_list = [ + 'blocked@client.com' +] + +mailer.add_to_blocklist("domain-id", recipients=recipient_list) +``` + +Using patterns: + +```python +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) +``` + +### Add hard bounced recipients + +```python +from mailersend import recipients +from dotenv import load_dotenv + +load_dotenv() + +mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY')) + +recipient_list = [ + "your@client.com" +] + +mailer.add_hard_bounces("domain-id", recipient_list) +``` + +### Add spam complaints + +```python +from mailersend import recipients +from dotenv import load_dotenv + +load_dotenv() + +mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY')) + +recipient_list = [ + "your@client.com" +] + +mailer.add_spam_complaints("domain-id", recipient_list) +``` + +### Add recipients to unsubscribe list + +```python +from mailersend import recipients +from dotenv import load_dotenv + +load_dotenv() + +mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY')) + +recipient_list = [ + "your@client.com" +] + +mailer.add_unsubscribes("domain-id", recipient_list) +``` + +### Delete recipients from blocklist + +```python +from mailersend import recipients +from dotenv import load_dotenv + +load_dotenv() + +mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY')) + +recipient_list = [ + "your@client.com" +] + +mailer.delete_from_blocklist("domain-id", recipient_list) +``` + +### Delete hard bounced recipients + +```python +from mailersend import recipients +from dotenv import load_dotenv + +load_dotenv() + +mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY')) + +recipient_list = [ + "your@client.com" +] + +mailer.delete_hard_bounces("domain-id", recipient_list) +``` + +### Delete spam complaints + +```python +from mailersend import recipients +from dotenv import load_dotenv + +load_dotenv() + +mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY')) + +recipient_list = [ + "your@client.com" +] + +mailer.delete_spam_complaints("domain-id", recipient_list) +``` + +### Delete recipients from unsubscribe list + +```python +from mailersend import recipients +from dotenv import load_dotenv + +load_dotenv() + +mailer = recipients.NewRecipient(os.getenv('MAILERSEND_API_KEY')) + +recipient_list = [ + "your@client.com" +] + +mailer.delete_unsubscribes("domain-id", recipient_list) +``` + +## Tokens + +### Create a token + +```python +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: + +```python +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)) +``` + +### Pause / Unpause Token + +```python +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) +``` + +### Delete a Token + +```python +from mailersend import tokens +from dotenv import load_dotenv + +load_dotenv() + +mailer = tokens.NewToken(os.getenv('MAILERSEND_API_KEY')) + +mailer.delete_token("token-id") +``` + +## Templates + +### Get a list of templates + +```python +from mailersend import templates +from dotenv import load_dotenv + +load_dotenv() + +mailer = templates.NewTemplate(os.getenv('MAILERSEND_API_KEY')) + +mailer.get_templates() +``` + +### Get a single template + +```python +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() +``` + +### Delete template + +```python +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() +``` + +## Webhooks + +### Get a list of webhooks + +```python +from mailersend import webhooks +from dotenv import load_dotenv + +load_dotenv() + +mailer = webhooks.NewWebhook(os.getenv('MAILERSEND_API_KEY')) + +mailer.get_webhooks("domain-id") +``` + +### Get a single webhook + +```python +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") +``` + +### Create a Webhook + +```python +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() +``` + +### Create a disabled webhook + +```python +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() +``` + +### Update a Webhook + +```python +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") +``` + +### Disable/Enable a Webhook + +```python +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) +``` + +### Delete a Webhook + +```python +from mailersend import webhooks +from dotenv import load_dotenv + +load_dotenv() + +webhook = webhooks.NewWebhook(os.getenv('MAILERSEND_API_KEY')) + +webhook.delete_webhook("webhook-id") +``` + +## SMS + +### Sending SMS messages + +Without personalization: +```python +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: +```python +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)) +``` + +## SMS Activity + +### Get a list of activities +```python +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)) +``` + +### Get activity of a single message +```python +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)) +``` + +## SMS Phone Numbers + +### Get a list of SMS phone numbers +```python +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)) +``` + +### Get an SMS phone number +```python +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)) +``` + +### Update a single SMS phone number +```python +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)) +``` + +### Delete an SMS phone number +```python +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)) +``` + +## SMS Recipients + +### Get a list of SMS recipients +```python +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)) +``` + +### Get an SMS recipient +```python +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)) +``` + +### Update a single SMS recipient +```python +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)) +``` + +## SMS Messages + +### Get a list of SMS messages +```python +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()) +``` + +### Get an SMS message +```python +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)) +``` + +## SMS Webhooks + +### Get a list of SMS webhooks +```python +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)) +``` + +### Get a single SMS webhook +```python +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)) +``` + +### Create an SMS webhook +```python +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)) +``` + +### Update a single SMS webhook +```python +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)) +``` + +### Delete an SMS webhook +```python +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)) +``` + +### Get a list of SMS webhooks +```python +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)) +``` + +## SMS Inbouds + +### Get a list of SMS inbound routes +```python +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)) +``` + +### Get a single SMS inbound route +```python +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)) +``` + +### Create an SMS inbound route +```python +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)) +``` + +### Update an SMS inbound route +```python +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)) +``` + +### Delete an SMS inbound route +```python +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)) +``` + +## Sender Identities + +### Get a list of sender identities +```python +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()) +``` + +### Get a sender identity +```python +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")) +``` + +### Create a sender identity +```python +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@domain.com", + reply_to_email="reply@domain.com", + reply_to_name="Doe John", + add_note=True, + personal_note="My awesome note", +)) +``` + +### Update a sender identity +```python +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@mydomain.com", + reply_to_email="reply@mydomain.com", + reply_to_name="Doe Abe", + add_note=False +)) +``` + +### Delete a sender identity +```python +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")) +``` + +## API Quota +### Get API Quota +```python +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()) +``` + +# Troubleshooting + +## Emails not being sent + +Print the output of `mailer.send()` to view status code and errors. + +```python +from mailersend import emails + +mailer = emails.NewEmail() + +mail_body = {} + +print(mailer.send(mail_body)) +``` + +# Testing + +TBD + +<a name="endpoints"></a> +# Available endpoints + +| 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](https://developers.mailersend.com/).* + + +<a name="support-and-feedback"></a> +# Support and Feedback + +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 [info@mailersend.com](mailto:info@mailersend.com) + +The official documentation is at [https://developers.mailersend.com](https://developers.mailersend.com) + +<a name="license"></a> +# License + +[The MIT License (MIT)](LICENSE) + diff --git a/.venv/lib/python3.12/site-packages/mailersend-0.5.8.dist-info/RECORD b/.venv/lib/python3.12/site-packages/mailersend-0.5.8.dist-info/RECORD new file mode 100644 index 00000000..f6a80f60 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/mailersend-0.5.8.dist-info/RECORD @@ -0,0 +1,55 @@ +mailersend-0.5.8.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +mailersend-0.5.8.dist-info/LICENSE,sha256=eG7YOu9SAOxhAZz5WT_CAj5iWJ8q8qtrZ_ojP71JSRg,1066 +mailersend-0.5.8.dist-info/METADATA,sha256=eOlrxIJinSS82ZPw5JFH7wOa3hMze-_qrKVUSthfg-8,47651 +mailersend-0.5.8.dist-info/RECORD,, +mailersend-0.5.8.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88 +mailersend/__init__.py,sha256=CO3M8gLnohHOAdOFuQEVnVnu2Ih7C4fNCusssv11ftM,170 +mailersend/__pycache__/__init__.cpython-312.pyc,, +mailersend/activity/__init__.py,sha256=nijRIidOZhcBMuBP6WnrAnLKWOhhWFpvjwk2w16qzSU,873 +mailersend/activity/__pycache__/__init__.cpython-312.pyc,, +mailersend/analytics/__init__.py,sha256=08nbVKoQlRHPfbAgE08Dmg5WFnvMdNBxBBKVOBOT8ZM,2808 +mailersend/analytics/__pycache__/__init__.cpython-312.pyc,, +mailersend/api_quota/__init__.py,sha256=xWtrUKJBnZVxHX5qDt-Dh_zzu5UGaheme9wJUZCbd6U,525 +mailersend/api_quota/__pycache__/__init__.cpython-312.pyc,, +mailersend/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +mailersend/base/__pycache__/__init__.cpython-312.pyc,, +mailersend/base/__pycache__/base.cpython-312.pyc,, +mailersend/base/base.py,sha256=dwHzxcRBZTM9oFwXjG-rJdoy8H9yLZdY662lLVJChHs,1096 +mailersend/domains/__init__.py,sha256=3y_WB9_PY6VKFc_Su0xHtsW772vetFkQFgEUkVtyDtQ,3196 +mailersend/domains/__pycache__/__init__.cpython-312.pyc,, +mailersend/email_verification/__init__.py,sha256=6mph5fgEQ0lOrflDKxKpoMuHMzlG-a0hQI5nNXKavrA,2406 +mailersend/email_verification/__pycache__/__init__.cpython-312.pyc,, +mailersend/emails/__init__.py,sha256=d2s7K1_KmdRtwV266jMTi-TaLhs0IF8wk98PNnTBclM,3495 +mailersend/emails/__pycache__/__init__.cpython-312.pyc,, +mailersend/inbound_routing/__init__.py,sha256=RtfxjJp4BXi5nkop-PV1ijowamY5BO72msJSQLfzdaE,3554 +mailersend/inbound_routing/__pycache__/__init__.cpython-312.pyc,, +mailersend/messages/__init__.py,sha256=Ji57fBVtpjbZPJ1BU6_Sicz266PsdG3esi4mkgryy0Q,787 +mailersend/messages/__pycache__/__init__.cpython-312.pyc,, +mailersend/recipients/__init__.py,sha256=Fks08MbYRAbT7SJKGEseXr3P9qZIQvUDoQcunXX1CNI,7289 +mailersend/recipients/__pycache__/__init__.cpython-312.pyc,, +mailersend/scheduled_messages/__init__.py,sha256=COK8VU6Zi4SIzhiLtMMDan9k7wegTm5PccLQ845JM9s,1185 +mailersend/scheduled_messages/__pycache__/__init__.cpython-312.pyc,, +mailersend/sender_identities/__init__.py,sha256=PeMP_v76SAftNxSKnczLH2Es_NQ6f9efHxJInZppSZU,3674 +mailersend/sender_identities/__pycache__/__init__.cpython-312.pyc,, +mailersend/sms_activity/__init__.py,sha256=U_fxWG2EcRGs9Qplv5A-hRlarPr4Za8tRgVNDNhW5Qo,1840 +mailersend/sms_activity/__pycache__/__init__.cpython-312.pyc,, +mailersend/sms_inbounds/__init__.py,sha256=vY9XkW-Yr7GSCCUWJwiZvWK-gX1qVzjb6sA4To62VYE,3375 +mailersend/sms_inbounds/__pycache__/__init__.cpython-312.pyc,, +mailersend/sms_messages/__init__.py,sha256=ptAskUj-t7p_8jm0nBRROLD7pYha_kCzRrWF3wCbVdE,1147 +mailersend/sms_messages/__pycache__/__init__.cpython-312.pyc,, +mailersend/sms_phone_numbers/__init__.py,sha256=SzYcEus5yqFiVNcPVeTH0PAGg8buh0fWUnW_LNQSsdQ,2372 +mailersend/sms_phone_numbers/__pycache__/__init__.cpython-312.pyc,, +mailersend/sms_recipients/__init__.py,sha256=kWsIzpWYbLejd9nqPKIuTAv6PZusgJRooA38L4CpG34,1986 +mailersend/sms_recipients/__pycache__/__init__.cpython-312.pyc,, +mailersend/sms_sending/__init__.py,sha256=3yeeEBrjSTV6rlOOPgXkVnQO3MOkdWi416MWzrQZZlk,1141 +mailersend/sms_sending/__pycache__/__init__.cpython-312.pyc,, +mailersend/sms_webhooks/__init__.py,sha256=XvnR9TKi6qNmyh_slcxoMtxwf8Xrn0JHd1XM_YlgpzA,2945 +mailersend/sms_webhooks/__pycache__/__init__.cpython-312.pyc,, +mailersend/templates/__init__.py,sha256=eZx6lTkvEu-8biFBXn8pxvFP6wo_Mxlcj3w65lMHXOY,1078 +mailersend/templates/__pycache__/__init__.cpython-312.pyc,, +mailersend/tokens/__init__.py,sha256=uA_Ih4TrBLESearJH9OhOZlyfqkvM7Ll1AayqFNP1iY,1394 +mailersend/tokens/__pycache__/__init__.cpython-312.pyc,, +mailersend/utils/__init__.py,sha256=c_BtMIiDeBs9q3tuicpXbiyWzsJ6R9199vIIL5GCof8,1015 +mailersend/utils/__pycache__/__init__.cpython-312.pyc,, +mailersend/webhooks/__init__.py,sha256=7ZveNKilzK17CgZDQCTDtxhGZl3jzlBgrHNE3Kx2vsM,3205 +mailersend/webhooks/__pycache__/__init__.cpython-312.pyc,, diff --git a/.venv/lib/python3.12/site-packages/mailersend-0.5.8.dist-info/WHEEL b/.venv/lib/python3.12/site-packages/mailersend-0.5.8.dist-info/WHEEL new file mode 100644 index 00000000..d73ccaae --- /dev/null +++ b/.venv/lib/python3.12/site-packages/mailersend-0.5.8.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: poetry-core 1.9.0 +Root-Is-Purelib: true +Tag: py3-none-any |
