SMTP(Simple Mail Transfer Protocol)とは、インターネットで電子メール(以下、メール)を転送するプロトコルです。
メッセージ形式
メールメッセージはヘッダとボディに分かれます。ヘッダは複数のヘッダフィールドで構成され、件名や宛先などの情報が含まれています。ボディはメール本文に当ります。
ヘッダフィールドの情報は以下になります。
Date: | 曜日・日・月・年・時・分・秒・タイムゾーンを表示。 [Date: WW, DD MM YYYY HH:MM:SS +0900] |
From: | メールの作成者の名前・メールアドレスを表示。 [From: “NAME” <NNNN@XXXX.co.jp>] |
Message-ID: | メールを一意に識別する「msg-id」が指定。 |
TO:/CC:/BCC: | メールの宛先を表示。 |
Received: | トレースフィールド、経由したメールサーバの処理の記録。 [Received: from XXXX.co.jp ([***.***.***.***])] |
通信手順
メールクライアント(MUA:Mail User Agent)がメールサーバ(MTA:Mail Transfer Agent)にメ-ルを送信する手順は以下になります。
メールクライアント | 方向 | メールサーバ |
メールサーバへ接続(Connected to -) - |
→ ← |
- オープニングメッセージを応答 |
クライアント情報を送信[EHLO] - |
→ ← |
- サポートしている拡張機能を応答 |
メッセージの差出人を指定[MAIL FROM] - |
→ ← |
- 確認を応答 |
メッセージの宛先を指定[RCPT TO] - |
→ ← |
- 確認を応答 |
メッセージの送信開始を要求[DATA] - |
→ ← |
- 確認を応答 |
メッセージの送信 - |
→ ← |
- 確認を応答 |
切断を要求[QUIT] - |
→ ← |
- 確認を応答 |
切断(Connection closed by -) | → | - |
SMTPコマンド
SMTPコマンドは、メールの送信や情報の確認に使われます。主なSMTPコマンドは以下になります。
コマンド | 内容 |
HELO(Hello) EHLO(Extended Hello) |
クライアントの接続元の確認 |
MAIL(Mail) | メッセージの送信者の指定 |
RCPT(Recipitent) | メッセージの受信者の指定 |
DATA(Data) | メッセージの送信開始を指定 |
RSET(Reset) | 接続状態のリセット |
QUIT(Quit) | セッションの切断 |
SMTP応答コード
SMTP応答コードは3桁で構成され、最初の1桁目は応答が成功/失敗したといったコマンドの結果が分かるようになっています。
コード | 内容 |
1yz | コマンドの確認待ち |
2yz | コマンドの成功 ・220:サービスの準備完了(Service ready) ・221:転送チャネルを閉じる(Service closing transmission channel) ・250:正常終了(Requested mail action okay, completed) |
3yz | コマンド途中の応答 ・354:メールメッセージの入力(Start mail input; end with <CRLF>) |
4yz | 一時的なエラー ・451:コマンドが中断(Requested action aborted; error in processing) |
5yz | 恒久的なエラー ・500:構文エラー(Syntax error, command unrecognized) |

IT
マネジメント、セキュリティ、ネットワーク、システム

散策路TOP
古典物理、量子力学、物性論、数学、応用数学、力学、電磁気学、相対論、熱・統計力学、解析学、代数学、幾何学、統計分析、情報