Massive alias / bulk delivery problem

gnd
Tue, 14 Jul 2020 07:52:54 -0000

Hello list,

we are experimenting with using Dovecot as part of a simplified mail
stack with SQL for a internal messaging / notification system for our
customers. Sometimes we need to send a message to thousands of customers
at once and we do it by having aliases resolve to 10k and 20k+ mail
accounts.

When we send such a message the server load (obviously) is very high for
a few minutes (in case of an alias containing 10k addresses its around
6-7 minutes for a 2 core machine with load around 20-30).

Are there any optimizations or ways how to design the system around this
problem ? Eg. is there a way how to deliver messages more slowly, and
spread the load over longer time ?

The stack is very simple with Postfix receiving the messages and Dovecot
acting as a LMTP and IMAP server. Mailboxes are in the Maildir format on
disk. Customers get the messages on login, a PHP script connects to the
mail account associated with their ID via IMAP and sends unseen messages
in the form of a JSON.

Best regards,

gnd/