Send delivery events to any HTTP endpoint using webhooks
Last year, we wrote an article about the advantages of publishing delivery results to RabbitMQ as JSON objects. While communicating with RabbitMQ and processing result objects is fairly straightforward, writing the necessary script may not be the most efficient use of your time.
We’ve developed MailerQ Webhook to accommodate the need for easy access to these result objects. This tool takes objects from RabbitMQ and sends them to a specified HTTP endpoint. It can be used to emit delivery events such as failed deliveries, retried deliveries and/or successful deliveries to a third-party analytics platform or your own application.
MailerQ Webhook can be downloaded for free from our repository. You can run as many instances of this application as you’d like. Any instance of MailerQ Webhook can be ‘mounted’ onto a specific queue in RabbitMQ.
MailerQ can produce the following result queues:
- A success queue containing all successful deliveries;
- A failure queue containing all failed deliveries;
- A results queue containing both failed and successful deliveries;
- A retry queue containing all messages that will be retried;
- A reports queue containing all asynchronous bounces, DMARC reports and other disposition messages;
- A DSN queue containing delivery status notifications generated by MailerQ;
- Custom results queues for programmatically/dynamically selected messages.
Using MailerQ Webhook’s whitelist/blacklist mechanism, you can select properties that you do or do not wish to send to the endpoint. Examples of this include privacy-sensitive data, DKIM keys, email content or large properties such as DKIM keys.