メール通信の仕組み 〜プロトコルで読み解くメールの流れ〜
私たちが毎日使っている「メール」ですが、その裏側では複雑なプロトコル同士が連携して正確にやりとりを行っています。
ここでは、以下の図の流れに沿って「メールはどうやって送られて、どうやって届くのか?」を具体例とともに、視覚的にもわかりやすく解説します。
📬 メール送受信の全体フロー(簡易図解)
[PC/スマホ] [送信サーバ] [受信サーバ] [受信端末]
↓ ↓ ↓ ↓
┌────────┐ ┌────────────┐ ┌────────────┐ ┌────────┐
│Gmail等の │⇒⇒│SMTP転送処理 │⇒⇒│IMAP/POPで取得│⇒⇒│Outlook等│
│メール送信 │ │DNS/MX参照等 │ │セキュリティ検証│ │メーラー │
└────────┘ └────────────┘ └────────────┘ └────────┘
ステップ別に解説
① クライアントから送信リクエスト(SMTP)
あなたがメールをGmailなどのクライアントから送信すると、まずはSMTP(Simple Mail Transfer Protocol)が使われます。
例)あなたのメールアドレスが you@example.com
、宛先が friend@othermail.com
の場合:
Gmailクライアント → SMTPサーバへ接続(ポート587や465)
このSMTPサーバは、次の宛先にメールを転送する必要があるため、DNSに「MXレコード(Mail eXchange)」を問い合わせます。
② DNSで宛先サーバを調べる(MXレコード)
example.com → DNS → MXレコードを問い合わせ
⇒ mail.othermail.com のIPアドレスを取得
これで、宛先のメールサーバのIPが分かり、接続可能になります。
③ SMTPでメールを送信
取得した受信側メールサーバに対して、SMTPがメールを送信します。
この時、次のような情報も一緒に送られます:
- 宛先アドレス
- 件名・本文(MIMEエンコーディング)
- 添付ファイル
- セキュリティ署名(DKIMなど)
you@example.com → friend@othermail.com
件名: こんにちは
本文: 今夜飲みに行きませんか?
④ メールは一時保存される(Queue)
受信側サーバでは、すぐに相手の受信クライアントが取りに来るとは限らないため、いったん「メールキュー(Queue)」に保管します。
⑤ クライアントがメールを取得(POP3またはIMAP)
宛先の相手(friend@othermail.com)が、Outlookなどのメールクライアントを起動すると、以下のようにサーバと通信します:
- POP3(ポート110):メールをダウンロードしてサーバから削除(スマホ向き)
- IMAP(ポート143):サーバ上のメールを同期(PC・スマホ両用に便利)
Outlook → IMAP接続 → メール一覧取得 → メール本文を表示
🔐 セキュリティプロトコルも活躍!
メールは非常に攻撃されやすい通信手段なので、以下のプロトコルが安全性を保っています:
- SPF:この送信者は正規ドメインか?
- DKIM:メールは改ざんされていないか?
- DMARC:SPF/DKIMを満たさない場合、どうするか?
たとえば、Gmailで送ったメールには「DKIM署名」が付き、受信側サーバで「改ざんがないか」が検証されます。
🌐 使用される主なポート番号まとめ
プロトコル | 用途 | ポート番号 |
---|---|---|
SMTP | 送信 | 25 / 587 / 465 (SSL) |
POP3 | 受信(DL) | 110 |
IMAP | 受信(同期) | 143 |
SMTPS/IMAPS/POP3S | セキュア通信(SSL/TLS) | 465/993/995 |
📌 まとめ:メールはこうやって届く!
- メール送信はSMTP、受信はPOP3またはIMAP
- DNSでMXレコードを参照し、宛先のメールサーバを探す
- セキュリティ対策も多数組み込まれている(SPF/DKIM/DMARC)
- プロトコルごとに通信ポートや用途が異なる
📚 おまけ:実際のSMTPセッション(コマンド例)
telnet mail.example.com 25
HELO mydomain.com
MAIL FROM:<you@example.com>
RCPT TO:<friend@othermail.com>
DATA
Subject: Hello
This is a test email.
.
QUIT