There are three types of email programs, all of which perform 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, the
default SMTP port.
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.