一般的に、全ての電子メールプログラムには3つの分類のうちのひとつに分けられます。それらはすべて 電子メールメッセージの移動と管理のプロセスで特定の役割を果たします。大半のユーザーは、 メッセージを送受信するための特定の電子メールプログラムしか意識しません。これらのタイプはそれぞれ、 電子メールが正しい宛先に着信するかどうかを確認するために重要です。
MTA(Mail Transfer Agent)は SMTPを使用してホスト間で電子メールを転送します。1つのメッセージが目的地まで 移動する間に幾つかのMTAが関与することもあります。
マシン間のメッセージの配信はかなり単純なものに見えますが、特定のMTAがリモートホストに 配信するためのメッセージを受け入れることができるか、あるいは受け入れなければならないかを 決定するプロセス全体は非常に複雑です。また、スパムから問題が発生するため、特定のMTAを 使用することは通常、MTA自体の設定あるいはMTAネットワークアドレスへのアクセス欠如の いずれかで制限されます。
最新の電子メールクライアントプログラムの多くは、メールを送信する時に、MTAとして 動作します。しかし、この動作は実際のMTAの役目と混同しないで下さい。電子メール クライアントプログラムが電子メールを(MTAのように)発信できる唯一の理由はアプリケーションを 実行しているホストが自分自身のMTAを所有していないからです。これは、特に非Unix ベースのオペレーティングシステム上の電子メールクライアントで明確です。 しかし、これらのクライアントプログラムは、使用許可のあるMTAにのみ発信メッセージを 送信するだけで、受信者の電子メールサーバーにメッセージを直接配達する ことはありません。
Red Hat Linuxが2つのMTA (Sendmail と Postfix)をインストールするため、電子メールクライアント プログラムは多くの場合、MTAとして動作する必要はありません。Red Hat LinuxにはFetchmailと言う 特殊目的用のMTAも含まれています。
SendmailとFetchmailの詳細については、項11.3を 参照して下さい。
MDA(Mail Delivery Agent)は、MTAに よって喚起され着信メールを正式なユーザーのメールボックスにファイルします。 多くの場合、MDAが実際にmail又は Procmailのように LDA(Local Delivery Agent) (ローカル配送エージェント)となります。
電子メールクライアントによって読まれる場所まで配達するメッセージを扱うプログラムは どれもMDAと考えられます。この理由で、幾つかのMTA(Sendmailや Postfix)は、それらが 新規メールのメッセージをローカルユーザーのメールスプールファイルの追加する時、 MDAの役目を果たすと言えます。一般的にMDA はシステム間でメッセージを配送しませんし、 ユーザーインターフェイスも提供することはありません。MDAは電子メールクライアント アプリケーションがアクセスできるようにローカルマシン上のメッセージを分配したり 分類したりします。