New inbound feature - retries
Since launching Postmark Inbound, one of the features that our customers requested the most is the ability to retry inbound posts. Lot of things can happen that can disrupt an inbound JSON post coming from Postmark to the inbound hook server. The web application receiving emails or the web server hosting it can go down due to various reasons. Or, networking issues can render your inbound hook unreachable from Postmark.
Whatever the reason for the failed POST, you shouldn’t ever miss an email. That’s why we are adding automatic retries to Inbound, to ensure your web app receives the processed inbound emails.
How does it work?
When an email is sent to your inbound mailbox, Postmark will retrieve it and process it. Immediately, it will try to post the generated JSON to the inbound hook URL you defined. If the post was successful, it will be listed as Processed. The post is considered successful when the inbound hook returns one of the HTTP 200 codes. This is the same behavior we had until now and the presentation in the UI is the same.
However, if the hook returns a non-200 code, we will now schedule the JSON post for a retry. The entry in the activity screen will show how many retries were attempted, and will show the timestamp of the next pending retry.
You can even filter your emails by using the drop-down filter, looking for “Retrying” emails.
A total of 10 retries will be made, with growing intervals from 1 minute to 6 hours. This is done so that if your web app has longer downtime, it still has a chance to receive all of the posts when it is back online. Only if all of the retries have failed, your Inbound page will show the message as Inbound Error.
How much does a retry cost?
Retries don’t cost you anything - a single credit is taken for processing inbound email and includes all of the potential retries.
What is the next thing we are working on?
We are improving our infrastructure to produce much faster processing times for inbound emails. Another idea we’re working on is manual retries initiated from UI. If you have any suggestions on what you would like to see with Inbound, please let us know! You can comment here, send us your thoughts over Twitter (@postmarkapp) or email support.
This post was originally published May 01, 2012