ネットワーク

SMTPとは

2020年3月3日

SMTP (Simple Mail Transfer Protocol)

SMTPとは

SMTP (Simple Mail Transfer Protocolの略、読み:エスエムティーピー)は、電子メールを送信する際に使用するプロトコルです。

SMTPはIETF(Internet Engineering Task Forceの略、読み:アイイーティーエフ)において標準化されたメール転送のためのプロトコルであり、2回の改訂を経て1982年8月に簡易メール転送プロトコル(SMTP)という名称で標準化されています。

IETFとは、インターネットで利用される技術の標準化を推進する任意団体の一つです。

OSI参照モデル そして TCP/IP のアプリケーション層 で動作し、トランスポート層 では TCP を使用、そしてメールサーバにアクセスするために使用しているポート番号は「25」です。

メール送受信の流れ

SMTPを利用したメール送受信の簡単な流れを説明します。

メール送受信の流れ

送信者はメーラーと呼ばれるメールソフトやWebメールからメールを送信します。この時に使用するプロトコルのがSMTPです。送信したメールは、まず送信側のメールを管理しているメールサーバに送られます。

スポンサーリンク

そして、受信側のメールを管理しているメールサーバへとメールを転送します。ここまででSMTPの役割は終了です。

あとは、受信者がメールサーバにPOP3 もしくは IMAPを利用して受信者のメールを管理しているメールサーバにメールがないかの問い合わせを行います。(メールの問い合わせを行う際は「ユーザ名」と「パスワード」情報を送り認証を行う)

問い合わせの結果、メールがあればメールを受信できます。

SMTPコマンド

SMTPの主なコマンドは次の通りです。

コマンド名説明
EHLOメールサーバに対して応答の確認をし、接続を開始する
MAILFROM:<送信元メールアドレス>の形式で送信元のメールアドレスをメールサーバに送る
RCPTTO:<宛先メールアドレス>の形式で送信先のメールアドレスをメールサーバに送る。宛先が複数存在する場合は、その回数分コマンドを実行する
DATAメール本文をメールサーバに送る
QUITメールサーバとの接続を終了する
RSETメールサーバとの接続を中断・中止する

SMTPのコマンドに対する主な応答コードは次の通りです。

応答コード説明
200番台成功
300番台コマンドは成功し、追加の情報を待っている状態。DATAコマンドへの応答に354(Start mail input; end with <CRLF>.<CRLF>)が使われる
400番台一時的なエラー
500番台永続的なエラー

helpful