Email server architecture - toge510/homelab GitHub Wiki
Eメール・アーキテクチャ
メールを作成して相手に届くまでの一般的な流れ

プロトコル
- Simple Mail Transfer Protocol (SMTP): メールを送信するためのインターネット標準プロトコル。
- Post Office Protocol (POP): メールを取得するためのインターネット標準プロトコル。
- Internet Message Access Protocol (IMAP): メールを取得するためのインターネット標準プロトコル。
各コンポーネント
- MUA(Mail User Agent)
- ユーザーがメールを作成、表示、送信、受信をする(⚠️送受信はMUA-MTA間)
- 個人PC内などにあるメールクライアントソフトウェア(メーラー)のこと
- 例) Outlook、Thunderbird
- MTA(Mail Transfer Agent)
- メールの送信、受信をする(⚠️送受信はMUA-MTA間と、MTA-MTA間)
- 送受信はSMTPを使用するため、MTAが動くサーバーはSMTPサーバーと呼ばれる。
- 例) Postfix、Sendmail
- MDA(Mail Delivery Agent)
- メールを保存する、また、宛先ユーザーのMessage storeに配送して保管する。
- 例) ⚠️ Postfix, Devecotがこの機能を持つ。または、procmailなど。
- Message store
- メールが保管されるローカルシステムやサーバー。
- 例) Mbox,Maidir,/var/mail/spool/usernameのディレクトリに保管されたりする。
- POP/IMAP Server
- MUAからのリクエストに対して、Message storeからメールを取り出し、MUAに返すサーバー。
- 例) Dovecot
理解へのメモ
- MTAが動くSMTPサーバーは、送信用という説明をネットでよく見かけたが、これは正確には正しくない。受信もする。
- SMTPサーバーだけでも、サーバー間でのメールのやり取りは可能ではある。
- ユーザーは、SMTPサーバー(正確には、Messageストア)にアクセスして、メールを読めば良い。<= そういう時代もあったらしい。
- しかし、いちいち見にいくのは大変。。。
- そこで、POP/IMAPのような、ユーザーからのリクエストに対して、メールを返すプロトコルやソフトウェアが誕生したらしい
- ユーザーは、自分のPCのクライアントメールソフトウェアから、POP/IMAPサーバーにリクエストを送り、メールを読むことができる。Yeeeh!😀
参考リンク