ESMTP

読み:いーえすえむてぃーぴー / 英語表記:Extended SMTP

SMTPに、認証や暗号化、大きなメールの送信などの拡張機能を加えたもの。クライアントは、セッションの最初に EHLO コマンドを送って、サーバが使える拡張機能の一覧を受け取る。

イマシルちゃんの解説

メールを送るときは、まずサーバに「こんにちは」ってあいさつしてから始めるんだ。

むかしのあいさつは、ただの「こんにちは」だった。
でも、拡張のほうのあいさつをすると、サーバが「うちは、パスワードの確認も、暗号化もできるよ」って、
使える機能を全部教えてくれるんだよ。
そのあとで、どの機能を使うかを決めて、メールを送り始めるんだ!

より深い解説

定義

ESMTP(Extended SMTP)は、RFC 5321で定められた、SMTPの拡張の仕組みである。クライアントが EHLO で始めると、サーバは対応している拡張機能を応答で知らせる。拡張に対応していないサーバは EHLO にエラーを返すので、クライアントは HELO で始め直す。

セッションの流れ

S: 220 mail.example.com ESMTP
C: EHLO client.example.jp            ← セッション開始
S: 250-mail.example.com
S: 250-STARTTLS
S: 250-AUTH PLAIN LOGIN
S: 250 SIZE 10485760
C: MAIL FROM:<[email protected]>          ← 送信者
S: 250 OK
C: RCPT TO:<[email protected]>           ← 受信者
S: 250 OK
C: DATA                              ← 本文の開始
S: 354 Start mail input
C: (ヘッダーと本文)
C: .                                 ← 本文の終わり
S: 250 OK
C: QUIT

主なコマンド

コマンド意味
EHLOセッションの開始(拡張機能を使う)。自分のホスト名を名乗る
HELOセッションの開始(従来のSMTP)
MAIL FROM送信者のメールアドレスを示す
RCPT TO受信者のメールアドレスを示す(複数可)
DATAメールの本文を送り始める
QUITセッションを終える

主な拡張機能

拡張内容
STARTTLS通信の途中からTLSで暗号化する
AUTH送信者を認証する(SMTP-AUTH)
SIZE受け付けるメールの最大サイズを知らせる
8BITMIME8ビットのデータをそのまま送れる
PIPELINING応答を待たずに複数のコマンドを続けて送る

SMTP-AUTH を使ってメールを受け付けるのは、ふつう、サブミッションポート(587番)である。

実際の試験ではここに出る!

↑