In general, all email applications fall into at least one of three
classifications. Each classification 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 one is important for ensuring that email arrives at the
correct destination.
A Mail Transfer Agent
(MTA) transfers email messages between hosts
using SMTP. A message may involve several MTAs as it moves to its
intended destination.
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 is quite complicated. In
addition, due to problems from spam, use of a particular MTA is
usually restricted by the MTA's configuration or the access
configuration for the network on which the MTA resides.
Many modern email client programs can act as an MTA when sending
email. However, this action should not be confused with the role of a
true MTA. The sole reason email client programs are capable of sending
email like an MTA is because the host running the application does not
have its own MTA. This is particularly true for email client programs
on non-UNIX-based operating systems. However, these client programs
only send outbound messages to an MTA they are authorized to use and
do not directly deliver the message to the intended recipient's email
server.
Since Red Hat Enterprise Linux installs two MTAs, Sendmail and Postfix, email client
programs are often not required to act as an MTA. Red Hat Enterprise Linux also includes
a special purpose MTA called Fetchmail.
For more information on Sendmail, Postfix, and Fetchmail, refer to
Section 11.3 Mail Transport Agents.
A Mail Delivery Agent
(MDA) is invoked by the MTA to file incoming
email in the proper user's mailbox. In many cases, the MDA is actually
a Local Delivery Agent
(LDA), such as mail or
Procmail.
Any program that actually handles a message for delivery to the point
where it can be read by an email client application can be considered
an MDA. For this reason, some MTAs (such as Sendmail and Postfix) can
fill the role of an MDA when they append new email messages to a local
user's mail spool file. In general, MDAs do not transport messages
between systems nor do they provide a user interface; MDAs distribute
and sort messages on the local machine for an email client application
to access.
A Mail User Agent (MUA)
is synonymous with an email client application. An MUA is a program
that, at the very least, allows a user to read and compose email
messages. Many MUAs are capable of retrieving messages via the POP or
IMAP protocols, setting up mailboxes to store messages, and sending
outbound messages to an MTA.
MUAs may be graphical, such as Mozilla
Mail, or have a very simple, text-based interface, such
as mutt.