SMTPサーバがクライアントに送る情報は、以下のようになっている。
サーバは複数行の応答を返すこともでき、その場合には応答コードの直後に「-」
(ハイフン)を書くと、応答がまだ続くことを示す。最終行では応答コードの直
後はスペースとなる(応答が1行なら、応答コードの後はスペースである)。例
えば、
なお、最近では拡張ステータスコードというものも存在するが、これについて
はRFC 1893や
RFC2034を参照のこと。
応答コードとは
250 foo.bar Hello localhost [127.0.0.1]
ここで、最初の3桁の数字を応答コードと呼び、この使い方はRFC 2821などで
厳密に決まっている。本ファイルは、これのリファレンスである。
250-SIZE
250-DELIBERBY
250 HELP
1 | コマンドの確認待ち(SMTPでは普通使われない) |
2 | コマンドの成功 |
3 | コマンドは受け付けられ、続きのデータが要求されている |
4 | 一時的なエラー |
5 | 恒久的なエラー |
y:
0 | 構文に関するもの |
1 | 情報 |
2 | 転送チャンネル関連 |
3 | 未定 |
4 | 未定 |
5 | 別システムに関する状態、情報、エラーなど |
現在、このカテゴリーに属する応答コードはsmtpには存在しない。
200
正しくない応答コード(正しくは250を返すべき)。
RSETやNOOPに対する正常終了の応答コードとして、初期(1983年ごろ?)に見ら
れた(RFC 876)。
211 システムの状態、またはシステムヘルプの応答
214 ヘルプメッセージ
そのサーバで使えるコマンドに関するヘルプが返されるときに使われる。
HELPコマンドの応答など。
220 サービスの準備ができた
TCP/IP的にSMTPコネクションが確立したときに使われる。
220 (domain名) とドメイン名をともなう。
STARTTLSでは、TLSの準備ができたこ
とを示すのにも使われる。
221 転送チャンネルを閉じる
(メール送信がおわったなどの理由で)SMTPの転送チャネルを閉じるときに使わ
れる。つまり、QUITに対する応答。221
(domain名) とドメイン名をともなう。
250 要求されたメールアクションはOKであり、正常に終了した。
ほとんどのSMTPコマンドに対する成功の応答コード。
251 ユーザはローカルではない
そのユーザあてのメールが転送されるときに使われる。1) 単に250
で受信してこのクライアントに転送先を通知せずに転送する(セキュリティ上、
その方が望ましいケースも多いだろう)か、2) 251で受信し、転送先アドレス
をクライアントに通知する のいずれかの動作をする。
なお、Remote Queue Processiong Declaration
拡張サービスの文脈ではそのノードあてメールが現在サーバにないことを示す。
(cf 453)
252 ユーザの確認ができないが、配送の試みはするだろう
VRFYで確認しようとしたユーザは、実はこのサー
バ上にアカウントがないので、このサーバには確認できないが、そのユーザあ
てのメールはとりあえず転送はする、ということを示す。
なお、Remote Queue Processing Declaration
拡張サービスの文脈では253とおなじ(ただし、サーバがもっているそのノード
あてのメッセージ数の情報は含まない)。
253 OK, ノードxにn個あるメッセージが残っているので開始する
Remote Queue Processing Declarationにおけ
る成功コードで、サーバがそのノードあてのメッセージをもっている時の応答
コード。メッセージがない場合は251を用いる。
334 ダイジェスト待ち
Authenticationにおいて、サー
バのチャレンジに対するレスポンスを待つ。
354 メール入力の開始;
DATAに対する応答で、
421 サービスが利用可能でないので転送チャンネルを閉じる
例えば、メールセッション中にサーバのデーモンがShutdownされたときなど。
432 パスワードの変更が必要である
Authenticationで、選択された認証メカニズムを変更する必要があることを示す。
450 要求されたメールアクションは受けいれない:メールボックスが利用不能
他に該当しない一時的エラーはこれを用いる。
例えばメールボックスがビシーのような状態など。
451 要求されたアクションは中止された:処理中のエラー
データを処理しているときにエラーになった。主としてサーバ側に原因がある
ことが多い。
452 要求されたアクションは中止された:システムのストレージが足りない
システムのディスクがたりない。
453 メールがない
ODMRで、サーバ(プロバイダ)がそのサイトあて
のメールをもっていないことを示す。
454 一時的な認証失敗
Authenticationで、一時的なサー
バの失敗によって認証が失敗したことを示す。また、STARTTLSでは、一時的にTLSが利用できな
いことを示す。
458 ノードxあてのメッセージをキューできない
Remote Queue Processing Declarationに
おいて、何らかの理由でキューができない時に返されるエラー。
これにより具体的な理由が続く。
459 ノードxは許可されていない
Remote Queue Processing Declarationに
おいて、何らかの理由でそのクライアントにサービスが提供されないことを示
す。より具体的な理由がこれに続く。
500 構文エラー、コマンドが解釈不能
一般的な構文エラー。コマンド名が違うときに使われる。
また、入力行が長すぎるときにもこれを使う。
501 パラメータや引数の構文エラー
パラメータや引数が構文的におかしいときに使う。内容に問題があるときには
504などが使われる。
502 コマンドは実装されていない
そのコマンドは実装されていない。コマンドそのものは知っているが、それを
実装していない(あるいは、それを使えなくしている)ときに利用される。
503 コマンドの並びが悪い
例えば、RCPTコマンドより前にDATAコマンドが使われた、のように、コマンド
の順序が正しくないときに利用される。
504 コマンドパラメータが実装されていない
あるコマンドで使われたパラメータやオプションが使えない。例えば「MAIL
foo@bar.com BY=600」などとされた時、MAILコマンドそのものは実装されてい
るがDELIVERBYが実装されていないとこのエラーとなる。
521 メールを受けとらない
メールを(特定のものであれ、一般にであれ)受けとらないことを示す応答コー
ドで、RFC 1846に規定される。
ただし、
RFC 2821によれば、常にメールを受けとらないホストは554応答を、ポリシー
上の理由で特定のメールを受けとらないホストは550応答をそれぞれ使うよう
指示されているので、521を用いる場面はほとんどないものと思われる。
530 アクセス拒否
何らかの理由(ファイルパーミッションなど)でアクセスが拒否された。
Authenticationを利用している
とき、この応答はAUTH, EHLO, HELO, NOOP, RSET, QUIT以外のいかなるコマン
ドに対しても返され、サーバポリシーにより、要求されたアクションをするた
めには認証が必要であることを示す。
534 認証メカニズムが弱すぎる
Authentication
で、選択された認証メカニズムがサーバのポリシーが許すより
も弱いことを示す。
535 認証エラー
Authentication
で、認証関連のエラーのうち、特に定義されていないものを示す。
538 要求された認証メカニズムには暗号化が必要である
Authentication
で、選択された認証メカニズムはSMTPコネクションが暗号化さ
れている時のみ利用できることを示す。
550 要求されたアクションは実行されない
メールボックスが見つからない、アクセスできない、ポリシー上の理由でコマ
ンドが拒否されたなど(リレー拒否もこれになる)。
551 ユーザはローカルでない
251と同様、転送先に関する情報で、このサーバでは情報
が得られないことと、転送先に関する情報を示す。
552 要求されたメールアクションは中止された
ストレージの割りあてが上回った。メッセージが長すぎる時などに使われる。
553 要求されたアクションは受け入れられない
メールボックスの構文が不正であるときなどに用いられる。
554 トランザクションの失敗
何らかの理由でトランザクションに問題が生じたことを示す。また、
コネクション開始時の応答の場合には、ここにSMTPサービスが存在しないこと
を示す。
555 MAIL/RCPT のパラメータエラー
MAIL/RCPTコマンドに対するパラメータエラー(RFC 1869)。ただし、RFC 2821
では 504 を使うよう指示されている。
1yz: コマンドの確認待ち
2yz: コマンドの成功
3yz: コマンドは受け付けられ、続きのデータが要求されている
4yz: 一時的なエラー
5yz: 恒久的なエラー
Mimori Yuki <mimori@puni.net>
$Id: reply.html,v 1.4 2003/06/08 04:09:57 s-v Exp $