メール送受信に関わるエージェントについて、用語の説明。
- MUA : Mail User Agent
- MTA : Mail Transport Agent
- MDA : Mail Delivery Agent
MUA Mail User Agent
メールソフト。
MTA Mail Transport Agent
sendmail や Postfix など
MDA Mail Delivery Agent
メールをユーザに読めるように配信。
MDA は MRA (Mail Retrieval Agent )と分ける場合もある。
MTA/MDA/MUA の切り分け
必ずしも固定しておらず、メールをどう利用するかによって MTA/MDA/MUA の切り分けは変化する。
Maildir に配信して、 mailutils コマンドで読むシチュエーションの場合は postfix が MDA の役割、 mailutils コマンドがMUA と考えることができる。
また、Maildir に配信したものを Dovecot 経由でPOP3を使って Dovecot で Thunderbird で読む場合は Dovecot が MDA、Thunderbird が MUA の役割を果たす。
Gmail などは、MTA/MDA/MUA いずれの役割を果たしているサービスの集合体である。
例
anybody@gmail.com から hogehoge@example.com へメールを送る場合を考えてみます。
- example@gmail.com である ユーザAが ISP (インターネットサービスプロバイダ) プロバイダ internet.invalid を使ってインターネットに接続し、gmail を使って送信
- anybody@example.com が ISP (インターネットサービスプロバイダ) プロバイダ example.net を使ってインターネットに接続し、Thunderbird を使って受信
となった場合、以下のようなプロセスを踏んでメールが送られることになります。
これは一例であり、様々なパターンがあります。
- ユーザA が internet.invalid サービスを使ってインターネットに接続
- ユーザA が Webブラウザ Edge を使って https://gmail.com を開ける
- gmail Web サービスは ユーザA にMUAを提供する
- ユーザA が gmail の MUA 機能でメールを作成、送信する
- gmail の MUA サービスは gmail の MTA サービスに送信メールを渡す
- gmail MTA サービスは、example.com ドメインの MX レコードを検索する
- example.com ドメインの MXレコードは mail.example.com であると判明する
- gmail MTA サービスは mail.example.com に メールを転送する
- mail.example.com 上では MTA として postfix が動いている
- mail.example.com 上の postfix は 中継が妥当かどうか判定し、妥当であればメールを受け入れる
- mail.example.com 上の postfix は ユーザ anybody@example.com の Maildir にメールを保管する
- ユーザB が example.net サービスを使ってインターネットに接続
- ユーザB が Thunderbird を使って mail.example.com からメールを受信する
- mail.example.com 上では MDA として Dovecot が動いている
- mail.example.com 上の Dovecot は anybody@example.com の認証を行い、妥当であればメール受信リクエストを処理する
- ユーザB の Thunderbird に example@gmail.com からのメールが格納される
- ユーザB は Thunderbird 上で example@gmail.com からのメールを読む