Why MailerQ?
No Cloud
Fast
Flexible
Questions? Call us
www.mailerq.com
+31 20 520 61 90
What is MailerQ?
What is RabbitMQ?
RabbitMQ is open source AMQP message queue software. It allows you
to easily create reliable first-in-first-out message queues. MailerQ is built
on top of RabbitMQ and uses RabbitMQ to store and prioritize messages.
MailerQ focuses solely on the sending process.
or performance.
How MailerQ works
Installing MailerQ
MailerQ has one goal: fast and reliable email delivery, but how
following commands.
Red Hat
Debian
Your
application
Consume
JSON message
Outbox
queue
Add to
outbox queue
JSON
encoded email
Figure 1: Post your messages directly to RabbitMQ
JSON
"id": "1"
"envelope": "my-sender-address@my-domain.com",
"recipient": "info@example.org",
"custom-property-name": " debug data that will be
visible only in RabbitMQ message",
"generated": "2015-01-01 00:00:00",
"key": "message-store-key-where-body-can-be-found"
"maxdelivertime": "2015-01-01 01:00:00",
"maxattempts": 6,
"ips": ["231.34.13.156", "231.34.13.158"],
RabbitMQ.
by SMTP
Internet
Inbox queue
Your script
Outbox queue
Inbox queue
Your script
Outbox queue
MailerQ configuration
Many things can be configured in MailerQ:
Domains
MySQL
PostgreSQL
Deliveries
IP addresses
DKIM keys
And more...
SQLite
relational database.
Domain limits
DKIM support
15
DKIM
console.
MailerQ
management console
Email throttling
'mailbox unavailable'.
Processing results
All results are published back to RabbitMQ queues. Your
application can retrieve messages from these queues and
process the results.
The result queues
MailerQ publishes JSON encoded messages to the RabbitMQ
Results
Failed
Success
Retry
Consume
JSON message
Outbox
queue
Internet
Add result to JSON
Retry
Retry
queue
Send email
If greylisted
Success
queue
Failed
queue
All results
queue
Retry queues
Results queue
failures.
retried.
Temporarily store
message bodies
NoSQL database
JSON results
The input and output JSON look similar. The only difference is
the 'result' property that is added to the output JSON.
JSON input
"id": "1"
"envelope": "my-sender-address@my-domain.com",
"recipient": "info@example.org",
"custom-property-name": " debug data that will be
visible only in RabbitMQ message",
"generated": "2015-01-01 00:00:00",
"key": "message-store-key-where-body-can-be-found"
"maxdelivertime": "2015-01-01 01:00:00",
"maxattempts": 6,
"ips": ["231.34.13.156", "231.34.13.158"],
JSON output
"id": "1"
"envelope": "my-sender-address@my-domain.com",
"recipient": "info@example.org",
"custom-property-name": "debug data that will be
visible only in RabbitMQ message",
"generated": "2015-01-01 00:00:00",
"maxdelivertime": "2015-01-01 01:00:00",
"ips": ["231.34.13.156", "231.34.13.158"],
"results": [
{
"attempt": 1,
"time": "2015-01-01 00:00:20",
"type": "error",
"from": "231.34.13.156",
"to": "receiving IP",
"state": "mail from",
"code": "421",
"status": "4.7.0",
"description": "[GL01] Message
from("231.34.13.156")temporarily deferred"
},
results queue.
Expired messages
Rescheduled emails that fail because the maximum delivery
time has expired are directly moved to the results queue.
These message are not retried, but still show a result property
that normally triggers a retry.
"attempt": 2,
"time": "2015-01-01 00:00:36",
"type": "success",
"from": "231.34.13.156",
"to": "receiving IP",
"state": "accept",
"code": "250",
"status": "2.0.0",
"description": "Message accepted for delivery"
System requirements
MailerQ is Linux based software, it runs on Debian based
environments (Debian, Ubuntu, etcetera) and Red Hat based
environments (Red Hat, Fedora, CentOS, etcetera). Before
you install MailerQ you first need to have access to a working
RabbitMQ (version 3.3.1+) message broker.
Optional
The MailerQ MTA supports a number of database engines:
stored in a database.
MailerQ
www.mailerq.com
www.copernica.com
info@mailerq.com
info@copernica.com
@mailerq
@Copernica
20141128