SMTP応答コード一覧と意味

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応答コードの意味を理解しておくことで、障害発生時の原因特定やトラブルシューティングを効率的に行えるようになります。