Skip to main content

pystmark

PyPI version Build Status Coverage Status

Postmark API library for python 2.7, 3.6 and pypy. Built on top of the requests library.

Web Framework Integration

Documentation

The full Sphinx-compiled documentation is available here: https://readthedocs.org/docs/pystmark/en/latest/

Example Usage

from pystmark import (
    Message,
    send,
    send_with_template,
    send_batch,
    send_batch_with_templates,
    UnauthorizedError
)

API_KEY = 'my_api_key'
SENDER = 'me@example.com'

# Send a single message
message = Message(
    sender=SENDER,
    to='you@example.com',
    subject='Hi',
    text='A message',
    tag='greeting'
)

response = send(message, api_key=API_KEY)

# Send a template message
model = {
    'user_name': 'John Smith',
    'company': {
      'name': 'ACME'
    }

message = Message(
    sender=SENDER,
    to='you@example.com',
    template_id=11111,
    template_model=model,
    tag='welcome',
)

response = send_with_template(message, api_key=API_KEY)

# Send multiple messages
messages = [
    Message(
        sender=SENDER,
        to='you@example.com',
        subject='Hi',
        text='A message',
        tag='greeting',
        message_stream='broadcasts',
    )
]

response = send_batch(messages, api_key=API_KEY)

# Send multiple messages with templates
messages = [
    Message(
        sender=SENDER,
        to='you@example.com',
        template_id=11111,
        template_model=model,
        tag='greeting',
        message_stream='broadcasts',
    )
]

response = send_batch_with_templates(messages, api_key=API_KEY)

# Check API response error
try:
    response.raise_for_status()
except UnauthorizedError:
    print 'Use your real API key'

# Check for errors in each message when sending batch emails:
for m in response.messages:
    if m.error_code > 0:
        print m.message

Contribution

  1. Fork this repo
  2. Make your changes and write a test for them
  3. Add yourself to the AUTHORS.md file and submit a pull request

Please run the tests with ./setup.py test --with-integration, with at least python2.7, before you make a pull request. Requirements for running the tests are in tests/requirements.txt. The other versions will be handled by travis-ci.

The pep8 tests may fail if using pypy due to this bug, so that test is disabled if pypy is detected.

Copyright and License

pystmark is licensed under the MIT license. See the LICENSE file for full details.

Release files for pystmark 0.5.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pystmark 0.5.3
File Size Uploaded
pystmark-0.5.3.tar.gz 23.4 kB Details

Release files / pystmark-0.5.3.tar.gz

Download URL pystmark-0.5.3.tar.gz
Size 23.4 kB
Tags Source
SHA-256 checksum
How to use checksums
4d73827f0b00dc03fade324ab682fb4af7039c53e7f648a453eafec836d12018
BLAKE2b-256 checksum
How to use checksums
0c0b49a1d54577062c41a20744f5c656dc6b91c0452d887220487fd3583c6ec9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.2

Release history Release notifications | RSS feed

This release

0.5.3 This release

1 release file

0.5.1

1 release file

0.5.0

1 release file

0.4.8

1 release file

0.4.6

2 release files

0.4.5

1 release file

0.4.4

1 release file

0.3.4

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3

1 release file

0.1

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page