SMTP応答コード一覧と意味

目次
SMTP応答コードの意味を理解してメール障害を調査しよう
SMTPサーバの構築や運用を行っていると、ログやエラーメッセージの中に「250」「550」「421」といった数字を見かけることがあります。
これらはSMTP応答コード(SMTP Response Code)と呼ばれるもので、SMTPサーバが通信相手へ返すステータスコードです。
メール送信が成功したのか、失敗したのか、一時的な問題なのかを判断するために利用されます。
メール障害の調査やSMTP通信の解析を行うためには、SMTP応答コードの意味を理解しておくことが重要です。
本記事ではSMTP応答コードの仕組みと代表的なコードの意味について詳しく解説します。
SMTP応答コードとは
SMTP応答コードとは、SMTPサーバがクライアントや他のSMTPサーバへ返す3桁のステータスコードです。
SMTP通信ではコマンドを送信するたびに応答コードが返されます。
例えばSMTPサーバへ接続すると次のような応答が表示されます。
220 mail.example.com ESMTP Postfixこの220がSMTP応答コードです。
SMTPサーバの状態や処理結果を表しています。
SMTP応答コードの構成
SMTP応答コードは3桁の数字で構成されています。
特に1桁目が重要です。
| 1桁目 | 意味 |
|---|---|
| 2xx | 成功 |
| 3xx | 追加入力待ち |
| 4xx | 一時的エラー |
| 5xx | 恒久的エラー |
まずはこの分類を覚えるだけでもトラブル調査が容易になります。
2xx 成功コード
2xxはSMTP通信が正常に処理されたことを意味します。
メール配送やコマンド処理が成功した場合に返されます。
220 Service ready
220 mail.example.com ESMTP Postfix
SMTPサーバが接続を受け付ける準備ができていることを意味します。
SMTP接続直後に表示されます。
221 Service closing transmission channel
221 Bye
SMTP通信終了時に返されます。
QUITコマンド実行後に表示されることが一般的です。
235 Authentication successful
235 Authentication successful
SMTP認証(SMTP-AUTH)が成功したことを意味します。
250 Requested mail action okay
250 OK
最もよく見る応答コードです。
SMTPコマンドが正常に処理されたことを意味します。
以下のような場面で表示されます。
- EHLO成功
- MAIL FROM成功
- RCPT TO成功
- メール配送成功
251 User not local
251 User not local; will forward
ユーザーはローカルに存在しないが、別のサーバへ転送することを意味します。
3xx 追加入力待ちコード
3xxは処理継続のために追加情報が必要な状態を表します。
334 Authentication challenge
334 VXNlcm5hbWU6
SMTP認証時に利用されます。
ユーザー名やパスワードの入力待ち状態です。
354 Start mail input
354 End data with .
DATAコマンド実行後に表示されます。
メール本文の入力開始を意味します。
SMTP通信では非常によく利用されるコードです。
4xx 一時的エラーコード
4xxは一時的な問題によって処理が失敗したことを意味します。
時間をおいて再送すると成功する可能性があります。
421 Service not available
421 Service not available
SMTPサービスが利用できない状態です。
サーバ停止やメンテナンス時に発生することがあります。
450 Mailbox unavailable
450 Mailbox unavailable
メールボックスへアクセスできない状態です。
一時的な問題であることが多くあります。
451 Local error in processing
451 Local error in processing
SMTPサーバ内部で処理エラーが発生したことを意味します。
ディスク容量不足などが原因になることがあります。
452 Insufficient system storage
452 Insufficient system storage
サーバ容量不足を意味します。
メールキューが大量に滞留した際にも発生することがあります。
5xx 恒久的エラーコード
5xxは再送しても成功しない可能性が高いエラーです。
設定変更や問題解決が必要になります。
500 Syntax error
500 Syntax error
SMTPコマンドの書式が間違っています。
手動でSMTP通信を行う際によく発生します。
501 Syntax error in parameters
501 Syntax error in parameters
コマンド引数に誤りがあります。
メールアドレスの記述ミスなどが原因です。
502 Command not implemented
502 Command not implemented
SMTPサーバがそのコマンドをサポートしていません。
503 Bad sequence of commands
503 Bad sequence of commands
SMTPコマンドの順番が間違っています。
例えばEHLOより先にMAIL FROMを送信した場合などに発生します。
504 Command parameter not implemented
504 Command parameter not implemented
指定したパラメータに対応していません。
認証関連のエラーコード
SMTP認証時によく見かけるコードです。
535 Authentication failed
535 Authentication failed
SMTP認証失敗を意味します。
主な原因は以下の通りです。
- パスワード間違い
- ユーザー名間違い
- TLS設定不備
- 認証サービス停止
534 Authentication mechanism too weak
534 Authentication mechanism too weak
認証方式が安全ではないため拒否された状態です。
配送関連のエラーコード
メール配送時によく発生するコードです。
550 Mailbox unavailable
550 Mailbox unavailable
最も有名なSMTPエラーです。
以下のような原因があります。
- 存在しないメールアドレス
- 配送拒否
- 受信拒否設定
551 User not local
551 User not local
指定されたユーザーが存在しません。
552 Exceeded storage allocation
552 Exceeded storage allocation
メールボックス容量超過を意味します。
553 Mailbox name not allowed
553 Mailbox name not allowed
メールアドレス形式が不正です。
554 Transaction failed
554 Transaction failed
メール配送が拒否されました。
スパム判定時にもよく発生します。
SMTP応答コードの確認方法
SMTP応答コードは以下の方法で確認できます。
- mail.log
- maillog
- Postfixログ
- telnet接続
- swaks
- メールソフトのエラー表示
障害発生時はログ確認が基本です。
telnetで確認する例
SMTPサーバへ接続すると応答コードを直接確認できます。
telnet localhost 25 220 mail.example.com ESMTP Postfix EHLO localhost 250 OK MAIL FROM: 250 OK
SMTP通信の理解にも役立ちます。
実務でよく見るコード一覧
| コード | 意味 | 重要度 |
|---|---|---|
| 220 | 接続開始 | 高 |
| 235 | 認証成功 | 高 |
| 250 | 成功 | 高 |
| 354 | 本文入力待ち | 高 |
| 421 | サービス停止 | 高 |
| 451 | 一時的エラー | 高 |
| 535 | 認証失敗 | 高 |
| 550 | 配送拒否 | 最高 |
| 554 | 配送失敗 | 最高 |
まとめ
SMTP応答コードはSMTPサーバが返す3桁のステータスコードです。
2xxは成功、3xxは追加入力待ち、4xxは一時的エラー、5xxは恒久的エラーを意味します。
特に250、354、535、550、554は実務でも頻繁に目にする重要なコードです。
メールサーバの構築や運用を行う際は、SMTP応答コードの意味を理解しておくことで、障害発生時の原因特定やトラブルシューティングを効率的に行えるようになります。






