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.