SMTP Mail Infrastructure

$Id: smtp-infrastructure.html,v 1.2 2004/05/03 14:24:43 mrq1 Exp $

As our mail infrastructure is a little on the complex side, I'm going to describe it with respect to how inbound and outbound messages traverse the various systems.

Incoming Mail

Messages sent to our site from other internet sites find us by way of our DNS MX (Mail eXchange) record. At the moment this record is

stir.ac.uk MX 5 mx1.stir.ac.uk

mx1.stir.ac.uk is a round-robin DNS record which contains the addresses of our mail relays

mx1.stir.ac.uk A 139.153.12.54 (aka mailscanner1)
mx1.stir.ac.uk A 139.153.13.35 (aka mailscanner2)
mx1.stir.ac.uk A 139.153.12.53 (aka mailscanner3)

Each of these systems is functionally identical.

When a messages is received by one of the mailscanners it is placed into the input queue for processing my MailScanner which performs a number of operations on the message:

  1. The originating mail server's IP address is checked against a number of real-time blacklists (DNSBLs):
  2. If the message has any attachments they are scanned using the Sophos anti-virus tool
  3. The body of the message is checked by SpamAssassin, which perforns a number of tests to determine whether the message is likely to be spam.
  4. Based on the results of the spam, virus and blacklist checks the message's Subject: line is tagged accordingly
  5. The message is placed into the output queue for delivery

If the domain part (right hand side) of the recipient's address is listed in the mailertable file then the message is sent directly to the mail server listed in that file. For example:

students.stir.ac.uk smtp:[glass.stir.ac.uk]

directs mail mail addresses to @students.stir.ac.uk to the student email server, 'glass'

If the domain part of the recipients address is listed in the local-host-names file then the message is delivered acording to the aliases file. For example:

sysadm: sysadm@forth

directs mail for sysadm@stir.ac.uk to the unix email server 'forth'.

Outgoing Mail

Outgoing mail is routed to mx1.stir.ac.uk by the various front-end email servers (with the exception of MS Exchange, which sends all mail to mailscanner1 as it is not able to handle round-robin addresses in a useful way).

Messages traverse the input and output queues in the same way as described above, then delivery is performed according to the recipient sites' DNS configuration.