Skip to main content

Official mailtrap.io API client

Project description

Official Mailtrap Python client

This Python package offers integration with the official API for Mailtrap.

Quickly add email sending functionality to your Python application with Mailtrap.

Compatibility with previous releases

Versions of this package up to 1.0.1 were a different, unrelated project, that is now maintained as Sendria. To continue using it, see instructions.

Installation

Prerequisites

  • Python version 3.6+

Install package

pip install mailtrap

Usage

Minimal

import mailtrap as mt

# create mail object
mail = mt.Mail(
    sender=mt.Address(email="mailtrap@example.com", name="Mailtrap Test"),
    to=[mt.Address(email="your@email.com")],
    subject="You are awesome!",
    text="Congrats for sending test email with Mailtrap!",
)

# create client and send
client = mt.MailtrapClient(token="your-api-key")
client.send(mail)

Full

import base64
from pathlib import Path

import mailtrap as mt

welcome_image = Path(__file__).parent.joinpath("welcome.png").read_bytes()

mail = mt.Mail(
    sender=mt.Address(email="mailtrap@example.com", name="Mailtrap Test"),
    to=[mt.Address(email="your@email.com", name="Your name")],
    cc=[mt.Address(email="cc@email.com", name="Copy to")],
    bcc=[mt.Address(email="bcc@email.com", name="Hidden Recipient")],
    subject="You are awesome!",
    text="Congrats for sending test email with Mailtrap!",
    html="""
    <!doctype html>
    <html>
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      </head>
      <body style="font-family: sans-serif;">
        <div style="display: block; margin: auto; max-width: 600px;" class="main">
          <h1 style="font-size: 18px; font-weight: bold; margin-top: 20px">
            Congrats for sending test email with Mailtrap!
          </h1>
          <p>Inspect it using the tabs you see above and learn how this email can be improved.</p>
          <img alt="Inspect with Tabs" src="cid:welcome.png" style="width: 100%;">
          <p>Now send your email using our fake SMTP server and integration of your choice!</p>
          <p>Good luck! Hope it works.</p>
        </div>
        <!-- Example of invalid for email html/css, will be detected by Mailtrap: -->
        <style>
          .main { background-color: white; }
          a:hover { border-left-width: 1em; min-height: 2em; }
        </style>
      </body>
    </html>
    """,
    category="Test",
    attachments=[
        mt.Attachment(
            content=base64.b64encode(welcome_image),
            filename="welcome.png",
            disposition=mt.Disposition.INLINE,
            mimetype="image/png",
            content_id="welcome.png",
        )
    ],
    headers={"X-MT-Header": "Custom header"},
    custom_variables={"year": 2023},
)

client = mt.MailtrapClient(token="your-api-key")
client.send(mail)

Using email template

import mailtrap as mt

# create mail object
mail = mt.MailFromTemplate(
    sender=mt.Address(email="mailtrap@example.com", name="Mailtrap Test"),
    to=[mt.Address(email="your@email.com")],
    template_uuid="2f45b0aa-bbed-432f-95e4-e145e1965ba2",
    template_variables={"user_name": "John Doe"},
)

# create client and send
client = mt.MailtrapClient(token="your-api-key")
client.send(mail)

Contributing

Bug reports and pull requests are welcome on GitHub. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.

Development Environment

Clone the repo

https://github.com/railsware/mailtrap-python.git
cd mailtrap-python

Install tox

tox is an environment orchestrator. We use it to setup local environments, run tests and execute linters.

python -m pip install --user tox
python -m tox --help

To setup virtual environments, run tests and linters use:

tox

It will create virtual environments with all installed dependencies for each available python interpreter (starting from python3.6) on your machine. By default, they will be available in {project}/.tox/ directory. So, for instance, to activate python3.11 environment, run the following:

source .tox/py311/bin/activate

Information for version 1 users

If you are a version 1 user, it is advised that you upgrade to Sendria, which is the same package, but under a new name, and with new features. However, you can also continue using the last v1 release by locking the version in pip:

# To use the FORMER version of the mailtrap package, now known as Sendria:
pip install --force-reinstall -v "mailtrap==1.0.1"

License

The gem is available as open source under the terms of the MIT License.

Code of Conduct

Everyone interacting in the Mailtrap project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mailtrap-2.0.0.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mailtrap-2.0.0-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file mailtrap-2.0.0.tar.gz.

File metadata

  • Download URL: mailtrap-2.0.0.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.1

File hashes

Hashes for mailtrap-2.0.0.tar.gz
Algorithm Hash digest
SHA256 cc8305ebd339b258a60b9cd0b8e4de6f33744f65d7fb15a1160a6904b6031a38
MD5 ce5e984da1938a4863eb1d7376696eb9
BLAKE2b-256 9f4e58e8b889a630f3bd4066777922ccd905e836523fdcb00a488d3d1de9f7a9

See more details on using hashes here.

File details

Details for the file mailtrap-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: mailtrap-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.1

File hashes

Hashes for mailtrap-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 708cf4485b53cd22f0636fc94e8f033f7924dfac3db63802bc3efae1da6c3feb
MD5 265d686c664d3b9d45d57ed311a41e01
BLAKE2b-256 a64c979bf96d960dfcebfafc465c720ffd7d3fedbe095c1ac034b4e555d3d5d8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page