Email server architecture - toge510/homelab GitHub Wiki

Eメール・アーキテクチャ

メールを作成して相手に届くまでの一般的な流れ

image

プロトコル

  • 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!😀

参考リンク