SMTPレスポンスコードの意味と対処方法

SMTPレスポンスコードの意味と対処方法

この記事は SMTP Error Codes: What Do These Server Responses Mean? の抄訳です。

メールはあるコンピュータから別のコンピュータへとSMTPサーバ(メールサーバ)を経由してリレーされます。その際SMTPサーバは、「SMTPレスポンスコード」をクライアントに返します。

SMTPレスポンスコードとは、メールサーバが送信する3桁の応答コードで、メールが正常に配信されたか、一時的な遅延が発生したか、あるいは恒久的に拒否されたかなどの送信結果を示す情報です。これらのコードは、メール配信で問題が発生した際の原因や対処方法の判断に役立ちます。

SMTPレスポンスコードは主に以下の4つに分類されます。

  • 2xx:成功(メールがサーバに受け付けられました)
  • 3xx:追加の入力待ち(必要に応じて追加情報の送信が必要です)
  • 4xx:一時的なエラー(時間をおいて再送すると成功する可能性があります)
  • 5xx:恒久的なエラー(原因に対処しない限り、再送しても成功しません)

今回は、主なSMTPレスポンスコードと、その原因や対処方法をご紹介します。

SMTPレスポンスコードと対処方法

それでは主なSMTPレスポンスコードの意味と対処方法を見ていきましょう。

SMTPレスポンスコード早見表

コード 分類 意味 対応方法
211 情報 システムステータス 対応不要
214 情報 ヘルプメッセージ 対応不要
220 成功 サービス準備完了 対応不要
221 成功 接続を閉じます 対応不要
250 成功 要求を受け付けました 対応不要
251 成功 ユーザはこのサーバには存在しません。転送します 対応不要
252 成功 ユーザの存在は確認できないが、メールは受け付けます 対応不要
354 追加の入力待ち メッセージデータの入力を開始してください メッセージデータを送信する
421 一時的なエラー サービスを利用できません 時間をおいて再送する
450 一時的なエラー メールボックスが一時的に利用できません 時間をおいて再送する
451 一時的なエラー アクションが中止されました 時間をおいて再送する
452 一時的なエラー システムの空き容量が不足しています 時間をおいて再送する
500 恒久的なエラー 構文エラー コマンドを修正する
501 恒久的なエラー パラメータに構文エラーがあります パラメータを修正する
502 恒久的なエラー コマンドは実装されていません 別のコマンドを使用する
503 恒久的なエラー コマンドの順序が正しくありません コマンドの送信順を修正する
504 恒久的なエラー 指定したパラメータはサポートされていません パラメータを修正する
550 恒久的なエラー メールボックスが利用できません 宛先アドレスを確認する
551 恒久的なエラー ユーザはこのサーバには存在しません。正しい宛先へ送信してください 正しい宛先サーバ(別の宛先)に送信する
552 恒久的なエラー ストレージ容量を超えています メールのサイズを小さくする
553 恒久的なエラー メールアドレスが無効です 宛先メールアドレスを修正する
554 恒久的なエラー メールの送信処理に失敗しました エラーメッセージの内容を確認して対処する

各レスポンスコードの詳細について以下に紹介します。

2xx:成功

2xxのレスポンスコードは、サーバにメッセージが受け付けられたことを示します。

211: System status

システムステータスやヘルプ情報です。クライアントがHELPコマンドを送信した際に返されるもので、メール配信とは関係ありません。メール配信時にこのレスポンスコードを見かけることは無いでしょう。

214: Help message

クライアントからのHELPコマンドに対し、サーバがサポートしているコマンドや構文ルールなどのヘルプ情報を返したものです。「211: System status」と同様に、情報提供が目的であり、メール配信とは関係がありません。

220: Service ready

サーバがクライアントからの接続を受け入れ、コマンドを受け付ける準備ができています。これは、通信を開始する際の最初のハンドシェイク(挨拶)です。220が返されない場合は、サーバが接続を受け入れていないことを意味します。

221: Service closing transmission channel

メール送信リクエストの処理に成功した後、サーバが接続を閉じる際に返されます。SMTPセッションを終了する際の挨拶のようなものです。

250: Requested mail action okay, completed

メールがサーバに受け入れられ、配信キューに追加されました。この後、宛先サーバが受信者のメールボックスにメールを配送しますが、受信トレイに届く保証はありません。迷惑メールフォルダに振り分けられたり、フィルタリングルールによりブロックされたりする可能性があります。

250のよくあるメッセージ例

  • 250 OK:一般的な成功応答
  • 250 Message accepted for delivery:受付完了を明示する応答
  • 250 2.0.0 OK:「拡張ステータスコード(より詳細な情報を示すステータスコード)」を含む応答
251: User not local; will forward

指定されたメールアドレスは存在しませんが、転送ルールやメールゲートウェイの仕組みに従い、サーバが別のメールアドレスにメールを転送します。

252: Cannot verify user, but will accept message

指定されたメールアドレスが存在するかどうかを確認できませんが、メールは受け付けます。これは、DHA(Directory Harvest Attack:有効なメールアドレスを収集する攻撃)を防ぐために、VRFYコマンドなどによるメールアドレスの存在確認を禁止しているサーバで返されることがあります。メールアドレスが存在しなかった場合は、後からバウンスする可能性があります。

3xx:追加の入力待ち

354: Start mail input; end with <CRLF>.<CRLF>

これはエラーではありません。送信元メールアドレス(MAIL FROM)と宛先メールアドレス(RCPT TO)が指定された後、メール本文が送られてくるのをサーバが待っている状態です。正常なSMTP通信では、メール本文の送信前に必ずこの応答が返されます。

4xx:一時的なエラー

何らかの一時的な原因によりメールは受け付けられませんでしたが、再送することで届く可能性があります。多くの送信サーバは、4xxエラーが返されたメールを自動的に再送します。

421: Service not available, closing transmission channel

宛先サーバにより、一時的にメールの受信が保留されました。単位時間あたりの接続数や送信数が多すぎる場合や、宛先サーバの負荷が高い場合に発生します。

対応方法:
15分から30分程度時間をおいて再送してください。一斉送信メールの場合は、再送間隔を徐々に長くしましょう。

450: Requested mail action not taken: mailbox unavailable

受信者のメールボックスが一時的に利用できなかったため、メールを配信できませんでした。メンテナンスによってメールボックスがロックされている場合や、メールボックスの容量を超過している場合、あるいは技術的な問題が発生している場合などに発生します。

対応方法:
2~3時間後に再送しましょう。24時間経っても解消しない場合は、別の連絡手段を使ってメールボックスが正常に動作しているかを受信者に確認してください。

451: Requested action aborted: local error in processing

宛先サーバで何らかの一時的な問題が発生し、メール配信に失敗したことを示す汎用的なエラーです。

対応方法:
時間をおいて再送してください。通常、このエラーは自然に解消します。数日間経っても解消しない場合は、宛先サーバの管理者に調査を依頼してください。

452: Requested action not taken: insufficient system storage

宛先サーバのディスク容量やシステムリソースが不足しているため、メールは受け取られませんでした。

対応方法:
時間をおいて再送してください。添付ファイルのサイズを小さくすることも検討しましょう。特定のドメインでこの問題が頻発する場合は、そのドメインのメールサーバの管理者に連絡してください。ストレージ容量の解放は、宛先サーバの管理者が実施する必要があります。

5xx:恒久的なエラー

恒久的なエラーが発生した場合、原因を解消しない限り、再送してもメールは届きません。原因に対処した後で再送するようにしましょう。

500: Syntax error, command unrecognized

送信したSMTPコマンドを接続先のサーバが理解できませんでした。メールクライアントやメール送信ソフトウェアが誤った構文を送信していることが原因です。

対応方法:
メールクライアントの設定を見直し、適切なSMTPコマンドと構文を使用していることを確認しましょう。ただし、通常は設定の問題ではなく、ソフトウェアの不具合に起因しています。

501: Syntax error in parameters or arguments

SMTPコマンドは認識されましたが、パラメータの形式が誤っています。メールアドレスの形式が不正な場合や、コマンド引数が無効な場合に発生します。

対応方法:
メールアドレスの書式を確認してください。送信元メールアドレス(FROM)と宛先メールアドレス(TO)を山括弧(<>)で囲む必要がある場合もあります。

502: Command not implemented

送信側が実行しようとしたSMTPコマンド(SMTP拡張コマンドなど)に、受信側のサーバが対応していません。

対応方法:
拡張機能ではなく、標準のSMTPコマンドを使用してください。EHLOコマンドを使用して、接続先サーバが対応しているSMTP機能を確認します。

503: Bad sequence of commands

SMTPコマンドを送信する順番が間違っています。例えば、宛先メールアドレスを指定する前に本文データを送ろうとしたり、1つのセッション内で送信元アドレス(MAIL FROM)を2つ指定したりしている可能性があります。

対応方法:
SMTPコマンドを正しい順序で実行しているかを確認してください。正しい順序は以下の通りです。間違えていた場合は、SMTP接続をリセットして最初からやり直してください。

EHLO → MAIL FROM → RCPT TO → DATA → メール本文 → QUIT

504: Command parameter not implemented

送信したコマンドは有効ですが、接続先サーバでサポートされていないパラメータが含まれています。これはコマンドに関するエラーである502エラーと異なり、パラメータに関するエラーです。

対応方法:
サポートされていないパラメータを削除してください。EHLOコマンドを使用して、接続先サーバが対応している機能を確認し、その機能のみを使用します。

550: Requested action not taken: mailbox unavailable

受信者のメールボックスが存在しない、無効になっている、または宛先サーバがメッセージを拒否したことを意味します。これは最も一般的な恒久的エラーの1つです。原因としては以下のようなものがあります。

  • 宛先メールアドレスが無効、あるいは存在しない
  • 受信者が送信者のメールアドレスをブロックしている
  • 送信元ドメインがブラックリストに登録されている
  • 受信者の迷惑メールフィルタによりメールが拒否された
  • 受信者のメールボックスがいっぱいで、新しいメールを受信できない

対応方法:
宛先メールアドレスが有効で正しいこと、送信元ドメインやIPアドレスがブラックリストに登録されていないこと、メッセージに迷惑メール判定の要因となるものが含まれていないことを確認してください。
それでもエラーが継続する場合は、受信者に依頼して、送信元メールアドレスをホワイトリストに追加してもらいましょう。

551: User not local; please try [address]

宛先に指定したメールボックスがサーバに存在しません。このエラーでは、転送先のメールアドレスが宛先サーバから案内されることがあります。
251とは異なり、宛先サーバ側での自動転送は行われないため、自分で別のメールアドレスに再送する必要があります。

対応方法:
正しい宛先にメールを送信してください。別のメールアドレスが宛先サーバから案内された場合は、そのメールアドレスに送信しましょう。あわせて、宛先リストの登録情報も忘れずに更新しましょう。

552: Requested mail action aborted: exceeded storage allocation

受信者のメールボックスの空き容量が不足しているため、メールを配信できませんでした。452とは異なり、特定のユーザに割り当てられたメールボックスの容量に関する問題です。

対応方法:
添付ファイルを削除または圧縮してメールサイズを小さくしましょう。また、別の連絡手段で、受信者にメールボックスの空き容量を確保してもらうよう依頼します。メールボックスの整理が終わったら再送してください。

553: Requested action not taken: mailbox name not allowed

宛先メールアドレスの形式が間違っているか、使用できない文字が含まれています。ドメインのスペルミス、フォーマットの誤り、または宛先サーバ側の命名規則に違反するメールアドレスなどが挙げられます。

対応方法:
メールアドレスが正しい形式(例:username@example.com)であることを確認してください。ドメインにスペルミスがないか、メールアドレスに禁止されている文字やスペースが含まれていないかも確認しましょう。

554: Transaction failed

メールの内容やレピュテーションに関する様々な問題を示す汎用的なエラーです。一般的な原因としては、以下のようなものがあります。

  • 送信元IPアドレスまたは送信元ドメインがブラックリストに登録されている
  • 迷惑メールフィルタによって拒否された
  • 宛先側のポリシーに違反した(オプトインしていないアドレスへの送信など)
  • 送信者認証に失敗した(SPF、DKIM、DMARC
  • メッセージヘッダまたはコンテンツの形式が不正である

対応方法:
エラーメッセージ全文を確認し、具体的な原因を特定してください。ブラックリストの解除申請や送信者認証の設定、迷惑メール判定の要因となり得るコンテンツの排除など、原因に応じて必要な対処を実施しましょう。

バウンスメッセージとの違い

SMTPレスポンスコードは、メールサーバ間のSMTP通信中に返される「応答コード」です。
一方、バウンスメッセージは、SMTPエラーが発生した後に送信者に送られる「通知メール」です。バウンスメッセージには通常、以下の情報が含まれます。

  • エラーが発生した際のSMTPレスポンスコード
  • エラー内容の説明
  • 配信に失敗したメールの本文またはヘッダ
  • 対処方法

メール配信時にはバウンス率を注意深く監視してください。バウンス率が高いとレピュテーションが損なわれ、送信するすべてのメールの到達性に問題が生じる可能性があります。

おわりに

メールは複数のSMTPサーバを経由してリレーされます。今回は、このリレーの際にコンピュータ同士でやり取りされるSMTPレスポンスコードについて解説しました。

Twilio SendGridはSMTPリレーサービスとしても機能し、毎月2,000億通ものマーケティングメールやトランザクションメールを送信しています。
まずは無料トライアルから始めてみませんか?

よくある質問

Q:SMTPレスポンスコードとは何ですか?

メール配信の状況をメールサーバ同士でやりとりするために使用される3桁の数字です。メールが正常に配信されたのか、一時的に失敗したのか、または完全に拒否されたのかを示します。配信エラーの原因を特定し、適切に対処するのに役立ちます。

Q:SMTPレスポンスコードが250とはどういう意味ですか?

配信したメールがサーバに受け付けられ、配信キューに追加されたことを示します。これは、メールが受信トレイに届くことを保証するものではありません。迷惑メールフィルタによってブロックされたり迷惑メールフォルダに振り分けられたりする可能性があります。

Q:SMTPレスポンスコード4xxと5xxの違いは何ですか?

4xxは一時的な配信エラーを示すコードです。時間をおくことで自然に解決される可能性があるため、宛先サーバは、時間をおいて再送するように求めています。
一方、5xxは恒久的な配信エラーを示しています。原因を解消しない限りメールは宛先に届かないため、原因を特定し、適切な対処をした後でメールを再送してください。

Q:SMTPレスポンスコード421はどのような場合に発生しますか?

421エラーは、宛先サーバが一時的に利用できない、または過負荷状態にある場合に返されます。短時間に大量のメールを送信したことで宛先サーバから一時的な受信制限を受けていたり、宛先サーバに高い負荷がかかっていたりする可能性があります。
このエラーが返された場合は、15~30分ほど待ってから再送を試みてください。再送しても改善しない場合は、再送間隔を徐々に長くしましょう。

Q:SMTPレスポンスコード5xxが返された場合、メールを再送すべきでしょうか?

いいえ。5xxは恒久的なエラーです。根本的な問題を解決せずに再送するとレピュテーション(送信者の信頼性)を損なう可能性があります。再送を試みる前に必ず原因を特定し、必要な対処を講じてください。

アーカイブ

  • クレジットカード
    登録不要

  • インストールは
    一切不要

  • 独自ドメイン
    利用OK

SendGridの充実した機能をまずは
試してみませんか?

無料トライアル