ネットワークスペシャリスト 2022年 午前2 問08
問題文
SMTP(ESMTPを含む)のセッション開始を表すコマンドはどれか。
選択肢
ア:DATA
イ:EHLO(正解)
ウ:MAIL
エ:RCPT
🔒 解説は解答すると表示されます
SMTPセッション開始【午前2解説】
正解の理由
SMTP(ESMTP含む)では、通信の最初にクライアントがサーバへ挨拶と機能問い合わせを行います。これを行うコマンドが イ(EHLO)です。EHLOはクライアントが自分の識別名を送ると同時に、サーバがサポートする拡張機能(例: STARTTLS, AUTH, SIZE, 8BITMIME など)を応答で通知するために使われます。なお、EHLOは拡張機能を利用する際に用いるのが通常で、サーバがEHLOを認識しない場合はHELOにフォールバックしてセッションを開始できます。MAIL、RCPT、DATAはEHLO/HELOによるセッション成立後のメッセージ送信の手順(トランザクション)で使われるため、セッション開始を表すコマンドではありません。
解法ステップ
- SMTPの基本シーケンスを思い出す(挨拶 → 差出人指定 → 宛先指定 → データ送信)。
- 「挨拶と機能問い合わせ」に該当するコマンドを選ぶ(EHLO/HELO)。
- 選択肢を順に確認して、挨拶でないもの(MAIL, RCPT, DATA)を除外する。
- 拡張機能の問い合わせであるEHLOがセッション開始に当たると判断する。
選択肢別の誤答解説
-
ア: DATA
DATAはメール本文を送信するフェーズを開始するコマンドで、セッション開始(挨拶)ではありません。通常はMAIL/RCPTで宛先指定が済んだ後に用います。 -
イ: EHLO
EHLOは正解です。クライアントがサーバに対して挨拶を行い、ESMTP拡張機能を問い合わせるためのコマンドです。サーバは250応答行でサポート機能を列挙します。サーバがEHLOを受け付けない場合はHELOへフォールバックして挨拶します。 -
ウ: MAIL
MAIL(MAIL FROM:)はトランザクションの開始であり、差出人アドレスを指定するコマンドです。セッション全体の最初の「挨拶」ではありません。 -
エ: RCPT
RCPT(RCPT TO:)は個々の受信者を指定するためのコマンドで、セッション開始の役割はありません。
よくある誤解
- 「ESMTPでは必ずEHLOを使うべきだ」→ 誤り。クライアントは通常EHLOを送って拡張機能を確認しますが、サーバがEHLOを受け付けない場合はHELOでフォールバックできます。EHLOが使えない=接続不能、ではありません。
- 「DATAがセッション開始だ」→ 誤り。DATAはメッセージ本文の送信開始であり、挨拶や差出人/宛先指定より後に使います。
- コマンド順序を無視するミス(例:RCPTの前にDATAを送る)→ サーバがエラー応答(503 Bad sequence)を返します。順序を覚えておきましょう。
補足コラム
典型的なEHLOのやり取り(簡略化例):
C: EHLO client.example.com
S: 250-mail.example.com Hello client.example.com
S: 250-STARTTLS
S: 250-AUTH PLAIN LOGIN
S: 250-SIZE 10485760
S: 250 8BITMIME
上のようにサーバが250で複数行を返し、どの拡張を使えるかが分かります。もしサーバがEHLOに対して500系の応答を返す(未対応)場合、クライアントは次に
HELO client.example.com を送って基本的なSMTPセッションを確立できます(HELOは拡張機能問い合わせを行わない挨拶コマンド)。参考RFC: RFC 5321 と ESMTP 拡張に関する RFC(例: RFC 1869)。FAQ
Q1: EHLOを送らずにHELOだけで済ませても良いですか?
A1: はい。HELOは基本的なSMTPの挨拶であり、拡張機能を使わない限りHELOだけで通信可能です。ただし、STARTTLSやAUTHなどの拡張を使うにはEHLOでサーバのサポートを確認する必要があります。
A1: はい。HELOは基本的なSMTPの挨拶であり、拡張機能を使わない限りHELOだけで通信可能です。ただし、STARTTLSやAUTHなどの拡張を使うにはEHLOでサーバのサポートを確認する必要があります。
Q2: サーバがEHLOを受け付けないとメールは送れない?
A2: いいえ。サーバがEHLOを拒否してもHELOでフォールバックすれば、拡張機能を使わない範囲で送信できます。ただし機能制限により送信できない場合もあります。
A2: いいえ。サーバがEHLOを拒否してもHELOでフォールバックすれば、拡張機能を使わない範囲で送信できます。ただし機能制限により送信できない場合もあります。
Q3: EHLOとHELOの応答コードはどう違う?
A3: 応答コード自体(例: 250, 500)は同じプロトコル上の意味を持ちますが、EHLOに対してはサーバが250で複数行にわたりサポート機能を一覧表示するのが一般的です。HELOは単一の挨拶応答となります。
A3: 応答コード自体(例: 250, 500)は同じプロトコル上の意味を持ちますが、EHLOに対してはサーバが250で複数行にわたりサポート機能を一覧表示するのが一般的です。HELOは単一の挨拶応答となります。
関連キーワード: SMTP, ESMTP, EHLO, HELO, MAIL FROM, RCPT TO, DATA, STARTTLS, AUTH, RFC5321, RFC1869

\ せっかくなら /
ネットワークスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

