mouss wrote:
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@example.com to foo@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@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.
-Ross
______________________________________________________________________ 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.