postmarker

Python client library for Postmark API

MIT License

Downloads
217.8K
Stars
133
Committers
11

Postmarker

|Build| |Coverage| |Version| |Python versions| |Docs| |Chat| |License|

Python client library for Postmark API <http://developer.postmarkapp.com/developer-api-overview.html>_.

Gitter: https://gitter.im/Stranger6667/postmarker

Installation

Postmarker can be obtained with pip::

$ pip install postmarker

Usage example

NOTE:

The attributes of all classes are provided as is, without transformation to snake case. We don't want to introduce new names for existing entities.

Send single email:

.. code-block:: python

>>> from postmarker.core import PostmarkClient
>>> postmark = PostmarkClient(server_token='API_TOKEN')
>>> postmark.emails.send(
    From='[email protected]',
    To='[email protected]',
    Subject='Postmark test',
    HtmlBody='<html><body><strong>Hello</strong> dear Postmark user.</body></html>'
)

Send batch:

.. code-block:: python

>>> postmark.emails.send_batch(
    {
        'From': '[email protected]',
        'To': '[email protected]',
        'Subject': 'Postmark test',
        'HtmlBody': '<html><body><strong>Hello</strong> dear Postmark user.</body></html>',
    },
    {
        'From': '[email protected]',
        'To': '[email protected]',
        'Subject': 'Postmark test 2',
        'HtmlBody': '<html><body><strong>Hello</strong> dear Postmark user.</body></html>',
    }
)

Setup an email:

.. code-block:: python

>>> email = postmark.emails.Email(
    From='[email protected]',
    To='[email protected]',
    Subject='Postmark test',
    HtmlBody='<html><body><strong>Hello</strong> dear Postmark user.</body></html>'
)
>>> email['X-Accept-Language'] = 'en-us, en'
>>> email.attach('/home/user/readme.txt')
>>> email.attach_binary(content=b'content', filename='readme.txt')
>>> email.send()

There are a lot of features available. Check it out in our documentation! Here's just a few of them:

  • Support for sending Python email instances.
  • Bounces, Domains, Messages, Templates, Sender signatures, Status, Stats & Server API.
  • Django email backend.
  • Tornado helper.
  • Spam check API.
  • Wrappers for Bounce, Inbound, Open and Delivery webhooks.

Documentation

You can view the documentation online at:

Or you can look at the docs/ directory in the repository.

Python support

Postmarker supports CPython 3.6 - 3.10 and PyPy 3.7 & 3.8.

Thanks

Many thanks to Shmele <https://github.com/butorov>_ and lobziik <https://github.com/lobziik>_ for their reviews and advice :)

.. |Build| image:: https://github.com/Stranger6667/postmarker/workflows/build/badge.svg :target: https://github.com/Stranger6667/postmarker/actions .. |Coverage| image:: https://codecov.io/github/Stranger6667/postmarker/coverage.svg?branch=master :target: https://codecov.io/github/Stranger6667/postmarker?branch=master .. |Version| image:: https://img.shields.io/pypi/v/postmarker.svg :target: https://pypi.org/project/postmarker/ .. |Python versions| image:: https://img.shields.io/pypi/pyversions/postmarker.svg :target: https://pypi.org/project/postmarker/ .. |Docs| image:: https://readthedocs.org/projects/postmarker/badge/?version=stable :target: https://postmarker.readthedocs.io/en/stable/ :alt: Documentation Status .. |Chat| image:: https://img.shields.io/gitter/room/Stranger6667/postmarker.svg :target: https://gitter.im/Stranger6667/postmarker :alt: Gitter .. |License| image:: https://img.shields.io/pypi/l/postmarker.svg :target: https://opensource.org/licenses/MIT