SMTP(Simple Mail Transfer Protcol : RFC821)

メールを転送する際に使用する通信プロトコルで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 接続を切断する    

SMTPコマンド一覧
コマンド 説明
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