Inbound messages

The inbound messages API is available via the messages.inbound manager:

>>> postmark.messages.inbound.all()
[<InboundMessage: Blocked message from test@example.com>, ...]

There is a simple way to access the headers in the InboundMessage instance:

>>> inbound['X-Spam-Status']
No

Also, you can convert inbound message to MIME instance:

>>> inbound.as_mime()
<email.mime.multipart.MIMEMultipart object at 0x10a232c88>

Attachments

To access the attachments you could use the Attachments attribute of the InboundMessage which returns a list of attachments.

>>> inbound.Attachments
[<Attachment: test.txt>]

The interface is the same - all keys-value pairs in JSON data are attributes of the Attachment:

>>> attachment = inbound.Attachments[0]
>>> attachment.Name
test.txt

Besides it, you could do the following with attachments:

  • Access the decoded content

  • Check it length

  • Save it locally

  • Convert it to MIME instance

>>> len(attachment)
45
>>> attachment.decoded
This is attachment contents, base-64 encoded.
>>> attachment.save('/directory/to/save/')
/directory/to/save/test.txt
>>> attachment.as_mime()
<email.mime.base.MIMEBase at 0x10424b7b8>

Outbound messages

The outbound messages API is available via the messages.outbound manager:

>>> postmark.messages.outbound.all()
[<OutboundMessage: Sent message to test@example.com>, ...]

Opens

The opens API handler is located in messages.outbound.opens manager.

>>> postmark.messages.outbound.opens.all()
[<Open: Open from test@example.com>, ...]

Also, you can access to corresponding OutboundMessage instance via message property.

>>> open.message
<Sent message to test@example.com>