SMTP応答コード

もくじ


基礎

応答コードとは

SMTPサーバがクライアントに送る情報は、以下のようになっている。

250 foo.bar Hello localhost [127.0.0.1]

ここで、最初の3桁の数字を応答コードと呼び、この使い方はRFC 2821などで 厳密に決まっている。本ファイルは、これのリファレンスである。

サーバは複数行の応答を返すこともでき、その場合には応答コードの直後に「-」 (ハイフン)を書くと、応答がまだ続くことを示す。最終行では応答コードの直 後はスペースとなる(応答が1行なら、応答コードの後はスペースである)。例 えば、

250-SIZE
250-DELIBERBY
250 HELP

なお、最近では拡張ステータスコードというものも存在するが、これについて はRFC 1893や RFC2034を参照のこと。

応答コードの俯瞰

応答コード xyz のとき、

x:
1コマンドの確認待ち(SMTPでは普通使われない)
2コマンドの成功
3コマンドは受け付けられ、続きのデータが要求されている
4一時的なエラー
5恒久的なエラー

y:

0構文に関するもの
1情報
2転送チャンネル関連
3未定
4未定
5別システムに関する状態、情報、エラーなど

[応答コードもくじ] [SMTPもくじ]


実際の応答コード

1yz: コマンドの確認待ち

現在、このカテゴリーに属する応答コードはsmtpには存在しない。

[応答コードもくじ] [SMTPもくじ]


2yz: コマンドの成功

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を用いる。

[応答コードもくじ] [SMTPもくじ]


3yz: コマンドは受け付けられ、続きのデータが要求されている

334 ダイジェスト待ち

Authenticationにおいて、サー バのチャレンジに対するレスポンスを待つ。

354 メール入力の開始;.で終わり

DATAに対する応答で、.が来るま でのすべてのデータを(コマンドではなく)メッセージとして扱う。

[応答コードもくじ] [SMTPもくじ]


4yz: 一時的なエラー

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に おいて、何らかの理由でそのクライアントにサービスが提供されないことを示 す。より具体的な理由がこれに続く。

[応答コードもくじ] [SMTPもくじ]


5yz: 恒久的なエラー

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 を使うよう指示されている。

[応答コードもくじ] [SMTPもくじ]


Mimori Yuki <mimori@puni.net>
$Id: reply.html,v 1.4 2003/06/08 04:09:57 s-v Exp $