メールを転送する際に使用する通信プロトコルでPOP3のようなユーザ認証機能はなく、コマンド発行には一定の順番がある
クライアント
|
サーバー
|
|||
@ |
telnet サーバ名 25 等・・・ |
@ | 接続許可(OK)を返信 | |
A | HELO | A | 要求許可(OK)を返信 | |
B | MAIL FROM:送信元アドレス | B | 要求許可(OK)を返信 | |
C | RCPT TO:宛先アドレス | C | 要求許可(OK)を返信 | |
D | DATA (本文の開始) | D | 要求許可(OK)を返信 | |
E | メール本文の送信 | E | 要求許可(OK)を返信 |
|
F | 「 .」ピリオドのみの送信 (メール本文の終了を示す) |
F | OKとUIDを返信する |
|
G | 切断要求(QUIT)を返信 | G | 終了要求許可(OK)を返信する | |
H | 接続を切断する |
コマンド | 説明 | 例 |
---|---|---|
HELO | SMTP通信を開始する際のコマンド | HELO smtp.mydomain.com[SMTPサーバ名] |
MAIL FROM: | 送信メールの送信元を指定する。 送信先アドレスを指定するRCPTより先に発行する必要がある |
MAIL FROM: me@mydomain.com |
RCPT TO: | 送信メールの送信先を指定する。 1つ以上指定する必要があり、複数指定する場合には連続してRCPTコマンドを発行する。 メール本文を指定するDATAコマンドより先に発行する必要がある。 |
RCPT TO: you@yourdomain.com |
RSET | 作成中のメールを破棄する。 DATAコマンドの発行前なら処理中のトランザクション(メール作成)を破棄することができる。 また「.」のみの行で1つのメール作成(送信)が完了した後であればSMTPサーバとのセッションを初期化し、続けて次のメール作成が可能となる。 |
RSET |
DATA | 送信メールのヘッダ・本文の送信開始をサーバに伝える。 「.(ピリオド)」のみの行は本文の終わりを意味する。 また行頭のピリオドはサーバ側で捨てられるため、もし行頭にピリオドを入力した場合はメーラーがピリオドを補って送信する。 |
DATA ここにヘッダや本文を入力する 改行は受信側でも改行として認識され、 次の行の様に「.」のみの行で本文を終える . |
QUIT | SMTPコネクションの切断要求を送信する。 | QUIT |
NOOP | SMTPサーバからOK応答が返ってくる。 | NOOP |