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