> Currently the smtp server that our clients use to send emails is the same
> smtp server that is used by the "world" sending emails to our clients.
> Often we find that emails coming from the "world" being delivered to our
> clients cause high load 40+ and then clients have problems sending
> outgoing email. We are considering changing the MX record so that emails
> being delivered to our clients will use a different smtp server ie
> incomingsmtp.theirdomain.com and clients would use mail.theirdomain.com to
> send emails.
It's pretty easy to setup seperate incoming and outgoing SMTP servers.
I've been thinking a lot about this lately due to increasing spam and
virus load as well as lots of new users being added to our system in
recent months. The best setup I came up with (that we are currently in the
process of deploying), uses a central mailbox depository server (that is
also handling POP3 and IMAP that does no email scanning, several machines
that handled only incoming SMTP (and do all the virus and spam filtering),
and one or two outbound SMTP boxes will soon be added.
The mailbox server has a big RAID and a lot of RAM, and a fair amount of
CPU power to handled the IMAP processing overhead. Eventually it will do
zero tasks besides that. It is built for big, reliable storage first, then
attention to handling lots and lots of relatively small processes
(hundreds of POP and IMAP connects).
The incoming SMTP boxes are built with smallish (relatively) amounts of
disk, lots of CPU and RAM. They handle all the virus filtering and spam
stuff, and generally eat a lot of CPU time. Disk isn't a big concern with
these since they basically just accept an inbound message, scan/filter it,
and then pass the processed mail on to the central mailbox repository for
storage. Their disks mainly are just queue and logs.
The outbound SMTP boxes haven't been built yet, but will be essentially
the same as the inbound SMTP boxes. All the SMTP boxes are load balenced
with simple DNS round robin which seems to work fairly well. Everything
user-wise and the spam preferences are handled by SQL which makes it easy
to split the load up by task.
> We use a total of 8 qmail servers, one for the storage of the email boxes
> and the mysql DBs. One for a backup of this server and select queries for
> the DBs. The other 6 qmail servers are used for pop3/imap/webmail/smtp.
> I was thinking we would use 2 servers for pop3/imap/webmail (load
> balanced), 2 for incoming SMTP & Spam filtering, 2 for outgoing SMTP.
Your setup sounds similar to what we are working on. We use dedicated
webmail servers though since we have found that to be a very CPU intensive
task and the users can tell when the webmail servers get loaded. You may
want to consider using QMTP for inter-server mail transfers within your
system though since it has some advantages in terms of speed and overhead,
and when you have control of the sending AND the receiving mail server you
can make it work.
UNIX Systems Administrator