How Electronic Mail Works For Laymen.
Jason Balicki
kodak at FRONTIERHOMEMORTGAGE.COM
Wed Apr 14 21:50:10 IST 2004
This appears to be desperately needed:
How Electronic Mail Works For Laymen
-Or-
How I learned to stop worrying and love acronyms.
Every time you type a message, small multi-headed trailer-
park demons (or SMTP's for short) take that message and run
inside the network cables (or phone lines, but they're
narrower, that's why they're slower) to the destination
where it's handed to the incorrigible mail altered-state
postal demons (or IMAPD) to then be handed out by
the positronic otter people (or POP) to the users
(aka idiots.) Incidentally, this is also why
telephone lines sag from pole to pole.
If MailScanner is running on your system, then
there are a few more steps involved, but mostly
it's just small portly aristocratic men making
sure that you don't have the word "penis" in
your post.
Not to be confused with the Kraft Foods Post[tm]
brand cereal products. That would be gross.
Still here?
Ok, here's how it really works, but keep it secret
so us admin/priests still have jobs:
[note to the pedants: yes, this is simplified --
it's meant to be. A lot of documentation out there
seems to be needlessly complicated, especially in
the context of someone just starting out. I
realize it's fun to abuse our PFY's, but they've
got to know something if we're going to be able
to sneak out to a pub at 10AM. Further note:
I wrote this in a hurry.]
There are three parts to a mail system:
Mail User Agent (MUA).
Mail Transfer Agent (MTA).
Mail Delivery Agent (MDA).
The MUA is what the user uses to create (and usually read) mail.
It's what's usually referred to as the "client". This can be
Outlook, Outlook Express, Evolution, a web browser connecting
to a web-based email system (Hotmail) etc.
The MTA is the meat and potatoes (or beans and franks, if you
prefer). It, surprisingly enough, transfers mail; usually
between an MUA and a MDA. Some packages that do this are
Sendmail, Exim, and Postfix. This list isn't exhaustive,
don't get your panties in a bunch if I don't name your
favorite.
The MDA takes the message from the MTA and delivers
it to the user. This is some murky water right here,
because, technically, all MTA's have MDA components,
but usually when someone is talking about a MDA they're
talking about the software at the end of the chain
on the server, the part that hands the message out,
like a pop3 server or an imap server. Some big packages
seem to be both an MTA and an MDA (like Exchange) but
internally they are separate components.
Here is (a very simplified) chain of events where we
follow a message from a sender to the destination.
bob at fromhere.com is sending a message to tom at tohere.com:
1) Outlook [MUA] (Bob) (Sender)
|
2) Sendmail [MTA] (mail.fromhere.com)
|
3) Sendmail [MTA] (mail.tohere.com)
|
4) imapd [MDA] (mail.tohere.com)
|
5) Outlook [MUA] (Tom) (Recipient)
1) Bob fires up Outlook, types his message to Tom
2) outlook connects to the "outgoing" mail server
in its configuration, in this case let's say it's
mail.fromhere.com. mail.fromhere.com sees that
the mail is to go to mail.tohere.com so it in
turn connects to
3) mail.tohere.com. mail.tohere.com realizes
that the mail is destined for local delivery,
so it puts it in toms spool that
4) imap knows about. When Tom fires up
his client and it connects to the imap
server that lives on mail.tohere.com
it hands the message over to
5) Toms Outlook, that he then reads:
"Hey, Tom, do you ever get that unfresh feeling?
Love,
Bob."
So, now you're probably asking yourself
"why the hell am I reading this garbage?"
And I'd have to answer "because you want
to know how MailScanner fits into this, punk!"
And then I'd be like "You been shown."
and then you'd be all "Oh, yeah? It's ON!"
and I'd be like "Bring it, bitch!"
and then I'm all:
To simplify things we're going to just look at
the receiving end of the mail conversation
I described above, so Bob's sent his message
and it's now coming into mail.tohere.com:
1) Sendmail incoming queue mail.tohere.com (MTA)
|
2) Mailscanner on mail.tohere.com (sort-of-MTA)
|
3) Still Mailscanner: Checks for viruses and spam
(usually using 3rd party utilities)
|
4) Sendmail delivery queue (mail.tohere.com) (MTA)
|
5) imapd (mail.tohere.com) (MDA)
|
6) Outlook (Tom) (MUA)
1) sendmail takes the message and immediately puts
it in a queue, in this example, that's it.
2) MailScanner picks it up from the queue and
3) beats the crap out of it, if it survives it's
put in another queue that
4) Sendmail picks up and delivers to the users
spool that
5) imap knows about and delivers to the user
when
6) he fires up Outlook.
[note: there's a really cool diagram available at
http://www2.essex.ac.uk/cs/services/email/anti-spam/mailscanner.html
that covers this part in more detail. If you're
into that sort of thing.]
As you learn more about the mail process you'll learn
that 1) most of what I've written here is incredibly
simplified and 2) doing this crap day in and day out
is a sure-fire way to end up in the nuthouse.
There is much more to all of this, and explaining
it might (and I'm guessing here) almost fill up a book.
Or two hundred.
If you're seriously interested you need to get your
grubby lil' paws on a box and install all this software
on it. Play around. Get a couple of boxes and try
getting them to send mail to each other. Get yourself
a dyndns account and set up a test mail server at
home. Play around and learn. You could go take
classes, but that costs money and the reason you're
into this is because you think you might be able to
get a job doing it because right now you work at
a fast food joint and don't make jack and can't
afford the classes.
Well, that's why I said to use the free stuff. Then
you can be a highly paid and mentally stable systems
administrator like me! Twitch.
--J(K)
PS: Slow day, what can I say. If you don't like it,
it's not my fault you read it all the way to the
end.
More information about the MailScanner
mailing list