[CentOS] Large scale Postfix/Cyrus email system for 100,
Ross S. W. Walker
rwalker at medallion.com
Tue Oct 23 16:24:41 UTC 2007
> mouss wrote:
> > Matt Shields wrote:
> >> I'm trying to set up a large scale email system that
> supports 100,000+
> >> IMAP accounts. We have an existing frontend web interface
> that does a
> >> lookup on a mysql db to figure out which IMAP server to
> connect to for
> >> each user. For the email infrastructure we have decided on Postfix
> >> and Cyrus. We have configured both to use mysql to get the virtual
> >> user information.
> >> Because of the way that the infrastructure is (biz
> reasons) we are not
> >> doing shared storage, we have numerous IMAP servers that
> we distribute
> >> accounts across. As we add more users, we image up a new
> IMAP server.
> >> For our business's scaling purposes this was the best plan.
> >> What I am having a problem is how do I get postfix to transfer the
> >> email to the particular IMAP server that the user account is on. I
> >> know that I need to use lmtp and transport, but all the examples I
> >> have seen show forwarding all email to 1 IMAP server. I would like
> >> Postfix to do a lookup for each mailbox and determine which IMAP
> >> server to deliver it to.
> > There are primarily two ways:
> > [virtual aliase]
> > you can use virtual_alias_maps to redirect foo at example.com to
> > foo at hostN.example.com, provided the final server accepts
> such addresses.
> > If the final server doesn't accept these, and you use smtp
> to relay to,
> > then you can write the addresses back, using smtp_generic_maps.
> > [transport]
> > an laternative is to use use (per-user) transport_maps.
> something like
> > foo at example.com relay:[hostN.example.com]
> > In bothe approaches, the mappings can be generated using
> sql statements
> > (mostly CONCAT). something like
> > ...
> > query = SELECT concat('relay:[', host, '.example.com]')
> > FROM User
> > where '%u' = user and '%d' = domain
> > you get the idea I hope.
True, it may be better to just have a cron job dump out
new static maps every 15 minutes or so then to have the
MTA query on every delivery especially for 100K accounts.
This e-mail, and any attachments thereto, is intended only for use by
the addressee(s) named herein and may contain legally privileged
and/or confidential information. If you are not the intended recipient
of this e-mail, you are hereby notified that any dissemination,
distribution or copying of this e-mail, and any attachments thereto,
is strictly prohibited. If you have received this e-mail in error,
please immediately notify the sender and permanently delete the
original and any copy or printout thereof.
More information about the CentOS