In general, all email applications fall into at least one of three
classifications. Each of these classifications plays a specific role
in the process of moving and managing email messages. While most users
are only aware of the specific email program they use to receive and
send messages, each of these types is important for making sure email
arrives at the correct destination.
A Mail User Agent (MUA) is a program that, at
the very least, allows a user to read and compose email messages. An
MUA is often referred to as an email client. Of
course, many MUAs help users do more than that, including retrieving
messages via the POP or IMAP protocols, setting up mailboxes to store
messages, or helping present new messages to a Mail Transfer Agent
program that will deliver them to their final destination.
MUA programs may be graphical, such as Mozilla
Mail, or have a very simple, text-based interface, such
as mutt or pine.
A Mail Transfer Agent (MTA) transfers email
messages between machines using SMTP. A message may involve several
MTAs as it moves to its intended destination. Most users are totally
unaware of the presence of MTAs, even though every email message is
sent through at least one MTA.
While the delivery of messages between machines may seem rather
straightforward, the entire process of deciding if a particular MTA
can or should accept a message for delivery to a remote host is quite
complicated. In addition, due to problems from spam, use of a
particular MTA is usually restricted by the MTA's own configuration or
network access to the system running it.
Many of the larger and more complex MUAs can also be used to send
email. However, this action should not be confused with the actions of
a true MTA. In order for users not running their own MTA to move
outbound messages off of their machine and onto a remote machine for
delivery, they must use a capacity in the MUA that transfers the
message to an MTA they are authorized to use. However, the MUA does
not directly deliver the message to the intended recipient's email
server — that role is reserved for the MTA.
Red Hat Linux uses Sendmail as its default MTA, though others may be used in
its place. It is important that you disable the currently running MTA
before starting up another one, as both will try to claim port 25 and
one or both of the MTAs will then fail to start.
A Mail Delivery Agent (MDA) is utilized by the
MTA to deliver email to a particular user's mailbox. In many cases, an
MDA is actually a Local Delivery Agent (LDA),
such as /bin/mail or
procmail. However, Sendmail can also play the role
of an MDA, such as when it accepts a message for a local user and
appends it to their email spool file. Any program that actually
handles a message for delivery to the point where it can be read by an
MUA can be considered an MDA. Note that MDAs do not transport messages
between systems or interface with the end user.
Many users do not directly utilize MDAs, because only MTAs and MUAs are
necessary to send and receive email. However, some MDAs may be used to
sort messages before they are read by a user, which is a big help if
you receive a lot of email.