プロトコル補足

SMTP(Simple Mail Transfer Protocol) えすえむてぃーぴー

メール送信電子メールMTAポート番号IMAPPOP3
SMTPについて教えて

簡単に言うとこんな感じ!

SMTPは「メールを送るための配送ルール」だよ!郵便で言えば「差出人が郵便ポストに手紙を投函して、郵便局が届け先に運ぶ」仕組みのこと。メールの「送信」専用のプロトコルで、受け取るときはIMAP・POP3っていう別のルールを使うんだ。


SMTPとは

SMTP(Simple Mail Transfer Protocol) は、インターネット上で電子メールを送信・転送するための通信規約(プロトコル)です。1982年にRFC 821として標準化され、現在も世界中のメールシステムの根幹を支えています。

SMTPが担うのはあくまで「メールを送り出す・運ぶ」役割です。メールサーバー同士がやり取りして宛先のサーバーまで届けるのがSMTPの仕事で、受信者がメールを「取り込む・読む」作業はPOP3やIMAPという別のプロトコルが担います。「送信=SMTP」「受信=IMAP/POP3」と役割分担されているのがポイントです。

実務上は、メールソフト(OutlookやThunderbirdなど)やクラウドメールが背後でSMTPを自動的に使っており、利用者が意識することはほぼありません。ただし、システムから自動でメール通知を送る機能を作るとき(例:注文確認メール・障害アラートなど)は、SMTPサーバーのアドレスやポート番号を設定する場面が出てきます。


SMTPの仕組みと構造

SMTPによるメール送信は、大きく3ステップで動きます。

ステップ役割登場人物
① クライアント→送信サーバーメールソフトがSMTPサーバーにメールを預けるMUA(メールソフト)→MTA(送信サーバー)
② サーバー→サーバー送信側SMTPサーバーが宛先サーバーへ転送MTA → MTA(相手メールサーバー)
③ 受信サーバーで保管届いたメールを受信者のメールボックスに格納MTA → MDA(配送エージェント)

主要なポート番号

SMTPで使うポート番号は用途によって使い分けられています。

ポート番号用途暗号化
25番サーバー間転送(MTAどうし)なし(平文)
587番メールソフト→サーバー送信(推奨)STARTTLS
465番旧来のSSL送信SSL/TLS

覚え方: 「25は古い専用道路(サーバー間)、587は今どきの安全な一般道(クライアント送信)」と覚えておくと迷いにくい!

SMTP通信の主なコマンド

クライアント: EHLO mail.example.com       ← 「こんにちは、私はこのサーバーです」
サーバー:     250-mail.receiver.com        ← 「OK、受け付けます」
クライアント: MAIL FROM:<sender@example.com>  ← 「差出人はこの人」
クライアント: RCPT TO:<user@receiver.com>     ← 「宛先はこの人」
クライアント: DATA                            ← 「本文を送ります」
クライアント: Subject: テスト
              本文テキスト
              .                              ← ピリオドのみの行で終了
サーバー:     250 Message accepted           ← 「受け取りました」
クライアント: QUIT                           ← 「切断します」

歴史と背景

  • 1971年 — ARPANET上で初の電子メール送受信が行われる(Ray Tomlinsonが「@」記号を考案)
  • 1982年 — RFC 821としてSMTPが標準化される。インターネット黎明期のシンプルな設計
  • 1990年代 — インターネット普及とともにメールが爆発的に広がるが、認証機能がないという設計上の弱点が露わになりスパムが急増
  • 1995年 — SMTPに認証機能を追加するSMTP AUTH(RFC 2554)が登場
  • 2008年 — RFC 5321でSMTPが改定(現在の主流版)。SMTPSやSTARTTLSによる暗号化も普及
  • 2010年代〜 — SendGridやAmazon SESなどのクラウドSMTPリレーサービスが普及し、自前のSMTPサーバーを持たずにメール送信する企業が増加

SMTP・IMAP・POP3の役割比較

メールプロトコルは「送る」と「受け取る」で完全に分かれています。

メールプロトコルの役割分担 メールソフト (送信者) 送信SMTPサーバー (MTA) 受信SMTPサーバー (MTA) SMTP :587 SMTP :25 メールボックス (受信保管) 配送 メールソフト (受信者) IMAP /POP3 プロトコル比較 SMTP:メールを「送る・運ぶ」専用 IMAP:サーバーに置いたまま読む(複数端末向け) POP3:サーバーからダウンロードして読む(1台向け)

セキュリティ強化の仕組み

素のSMTPは認証も暗号化もない設計でした。現在は以下のセキュリティ拡張が組み合わさって使われています。

仕組み役割
SMTP AUTH送信者のIDとパスワードを認証し、不正送信を防ぐ
STARTTLS通信を途中からTLS暗号化に切り替える
SPF送信元IPアドレスが正規のサーバーか検証(なりすまし対策)
DKIMメール本文に電子署名を付けて改ざんを検知
DMARCSPF・DKIMの結果をもとに受信拒否ポリシーを設定

関連する規格・RFC

規格・RFC番号内容
RFC 821(1982年)SMTPの初版。基本仕様を定義
RFC 5321(2008年)現行のSMTP標準(RFC 821の改定版)
RFC 4954SMTP AUTH(認証拡張)
RFC 7208SPF(送信元ドメイン認証)
RFC 6376DKIM(電子署名によるメール認証)
RFC 7489DMARC(SPF/DKIMを組み合わせたポリシー制御)

関連用語

  • IMAP — メールをサーバーに置いたまま複数端末で読むための受信プロトコル
  • POP3 — メールをサーバーからダウンロードして読むための受信プロトコル