SMTPは、メールを送信するためのプロトコルです。一般的にメールを受信するにはPOP3で 行います。ここは、送信用のプロトコルに関するメモです。
詳しくは、RFC821を参照します。
SMTPは、クライアントからのコマンドとサーバからのリプライコードで通信を行います。 コマンドとリプライコードは、次のようになります。(他にもあります)。
| コマンド | 意味 |
|---|---|
| HELO domain名(クライアント名) | SMTP通信を開始する |
| MAIL FROM:<reverse-path> | メールの送り主を送信する(主にメールアドレス) |
| RCPT TO:<forward-path> | メールの宛先を送信する |
| DATA | ヘッダを含むメールの本体を送信する |
| QUIT | SMTP通信を終了する |
その他、RSET,SEND,SOML,SAML,VRFY,EXPN,HELP,NOOP,TURNなど。
サーバからのメッセージは、コードとテキストからなります。送られてきたコードを調べることで サーバ側でエラーが発生していないかを調べることができます。
サーバからの応答が複数行(多行応答)送られてくる場合があります。その場合、コードとテキ ストをハイフン(-)でつなぎ、最後の行のみコード<sp>テキストとなります。(RFC821.付録 E)
250-最初の行 250-二番目の行 250 最後の行
メールのメッセージの終わりは、ピリオド(.)のみの行が終わりになります。 正確には、CRLF.CRLFが終了になります。
メールがピリオド(.)から始まる行を含む場合には、クライアントは前にピリオド(.)を付加して 送信します。付加されたピリオド(.)は、SMTPサーバで削除されます。
日本語を送信するには、一般的にJISコードの文字を使用します。
SMTPで送信するデータは、7ビットASCII文字となっています。そのため、Shift-JISやEUCで 日本語を送信することができません。通常、文字コードをJISへ変換して送信します。
| コード | 意味 |
|---|---|
| 211 | System status, or system help reply |
| 214 |
Help message ヘルプメッセージ。 |
| 220 |
<domain> Service ready 準備完了。 |
| 221 |
<domain> Service closing transmission channel 接続を閉じる。 |
| 250 |
Requested mail action okay, completed 要求された処理は実行可能。完了。 |
| 251 |
User not local; will forward to <forward-path> 受信者が存在しないので[forward-path]に転送する。 |
| 354 |
Start mail input; end with <CRLF>.<CRLF> メールの入力開始。入力終了は「.」のみの行を送信。 |
| 421 |
<domain> Service not available,closing transmission channel サービスは利用不能。接続を閉じる。 |
| 450 |
Requested mail action not taken: mailbox unavailable メールボックスが利用できないため、要求された処理は実行不能。 |
| 451 |
Requested action aborted: local error in processing 処理中にエラーが発生。要求された処理は失敗。 |
| 452 |
Requested action not taken: insufficient system storage 記憶装置の空き領域が不十分なため、要求された処理は実行不能。 |
| 500 |
Syntax error, command unrecognized 文法に間違いがあるため、コマンドが理解できない。 |
| 501 |
Syntax error in parameters or arguments 引数の文法に間違いがある。 |
| 502 |
Command not implemented 指示されたコマンドはこのシステムには実装されていない。 |
| 503 |
Bad sequence of commands コマンドの発行順序が間違っている。 |
| 504 |
Command parameter not implemented コマンドの引数が未定義。 |
| 550 |
Requested action not taken: mailbox unavailable メールボックスが利用できないため、要求された処理は実行不能。 |
| 551 |
User not local; please try <forward-path> 受信者が存在しない。[forward-path]に送信せよ。 |
| 552 |
Requested mail action aborted: exceeded storage allocation ディスク不足のため、要求された処理は実行不能。 |
| 553 |
Requested action not taken: mailbox name not allowed メールボックスの名前が不適切なため、要求された処理は実行不能。 |
| 554 |
Transaction failed 処理失敗。 |
Copyright 1997-2008 BBB All rights reserved.