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/