A Collection of Inbound Updates

Reply Parsing #

Before today, the Postmark Inbound processor would parse the html and text bodies of the incoming messages but it was up to the user to decide if this was a reply and what that reply text is. Today we’re introducing the StrippedTextReply field which will contain only the reply text of an Inbound message.

  {...
  "ReplyTo": "myUsersReplyAddress@theirDomain.com",
  "Subject": "This is an inbound message",
  "MessageID": "22c74902-a0c1-4511-804f2-341342852c90",
  "Date": "Thu, 5 Apr 2012 16:59:01 +0200",
  "MailboxHash": "ahoy",
  "TextBody": "[ASCII]",
  "HtmlBody": "[HTML(encoded)]",
  "StrippedTextReply": "Ok, thanks for letting me know!",
  "Tag": "",
  "Headers": []
  ...}

For example, if you send an outbound message and CC your Inbound address, or override the ReplyTo field so that replies will be sent to your Inbound address, the StrippedTextReply field will contain only the reply content from any recipients who reply to the message. We think this will be a big help for users who rely on parsing out the reply text and ignoring the original quoted content. There are some limitations to the StrippedTextReply field which we discuss in the documentation.

MailboxHash for All Inbound Addresses #

Another feature we’re adding to the Inbound webhook data is a MailboxHash for each address sent to a Postmark Inbound address. Previously we only included a single MailboxHash for the address in the original DeliveredTo header of the message.

{...
"From": "myUser+hash1@theirDomain.com",
"FromName": "My User",
"FromFull": {
    "Email": "myUser+hash1@theirDomain.com",
    "Name": "John Doe",
    "MailboxHash": "hash1"
},
"To": "451d9b70cf9364d23ff6f9d51d870251569e+ahoy@inbound.postmarkapp.com",
"ToFull": [
    {
        "Email": "451d9b70cf9364d23ff6f9d51d870251569e+ahoy@inbound.postmarkapp.com",
        "Name": "",
        "MailboxHash": "ahoy"
    }
],
"Cc": ""Full name" <sample.cc@inbound.emailDomain.com>, "Another Cc" <another.cc@emailDomain.com>",
"CcFull": [
    {
        "Email": "sample.cc+8948594@inbound.emailDomain.com",
        "Name": "Full name",
        "MailboxHash": "8948594"
    },
    {
        "Email": "another.cc@emailDomain.com",
        "Name": "Another Cc",
        "MailboxHash": ""
    }
]
...}

Now, if you send a message to uniquename+hash@inbound.yourdomain.com and CC or BCC other hashed addresses, each MailboxHash will be parsed into the ToFull, CcFull, and BccFull arrays respectively.

Better Handling of http 403 Status Replies for Webhooks #

Each Inbound message Postmark receives is parsed and POSTed to a Hook URL as specified in the server settings tab. If Postmark does not receive a “200 OK” response from the url, the Inbound message will go into a retry state and follow a schedule over the next 12 hours to attempt to POST the data. From now on, if a webhook receives a “403 Forbidden” http response, Postmark will immediately “fail” the hook and stop trying to POST it.

Unable to deliver inbound message to destination inbound hook.

This is in keeping with http best practices and is a great way to let Postmark know that you are not interested in this particular webhook and it should not be retried.