メールエラーメッセージを攻略せよ!メールエラーメッセージとエラーコード一覧表

メール送信後、「Mail Derivery Subsystem」や「MAILER-DAEMON」という、英語表記で見覚えのない送信先から英文でメールが届くことがある。全文英語表記となっているため一見複雑で理解しにくいように見えるが、正しく解釈すれば何が問題で、どのように対処すればよいか分かる。
本記事では、メールの配信時に発生するエラーメッセージとエラーコードの一覧について解説する。原因と対策についても併せて紹介するので、メール配信時に発生するエラー対策として役立ててほしい。
何者?「Mail Derivery Subsystem」に「MAILER-DAEMON」
まず、メールエラーメッセージでよく見る「Mail Derivery Subsystem」や「MAILER-DAEMON」という件名・差出人だが、実際に存在するユーザーではないため、返信しても無意味である。これらは名称が異なるため、それぞれ違った役割を担っていると考える方もいるかもしれないが、あくまでもエラーメールにおける一般的な件名・差出人名となっており、特に違いはない。場合によっては、「Postmaster」という名称でメールが届くこともある。
これは、「宛先が誤っている場合」や「メールサーバーあるいはメールソフトの不具合」によってメールが正常に送信できなかった場合に送信される、エラーメールの件名・差出人名である。全文が英文表記となっているのは、日本語表記だと文字化けを起こす恐れがあるためである。
このようなエラーメールには、なぜメールが届かなかったのか、エラーの原因が記載されているため必ず確認するようにしよう。
主なエラーメッセージ5点~原因と対策~
User unknown…ホスト名(メールアドレスの@より前の部分)が間違っていること
送信先のメールアドレスについて、@より前の部分に誤りがないかどうか確認しよう。単純な誤字というケースや、既に存在しないユーザー名またはホスト名であるケースが考えられる。
HOST unknown(host not found)…メールアドレスのドメイン名(メールアドレスの@より後ろの部分)が間違っていること
User unknown同様、誤字や存在しないドメイン名を入力しているケースが考えられる。ドットがカンマになっている、.comやco.jpなど、末尾が誤っていることも想定されるため、送信先メールアドレスについては@の前後についてしっかりと確認しておこう。
Message content rejected…ウイルス感染している恐れのあるファイルが添付されている、もしくは件名や本文内に不適切な文言が記載されている等、送信したメールがスパムとして判断された際に届くメール
まず、ウイルス感染については、ウイルススキャンソフトの使用やウイルスチェックができる環境の構築を行う等、できる限りウイルス感染の恐れを排除することが重要だ。
また、不適切な文言については明確なキーワードが公表されているわけではないが、スパムメールを連想させるような文言はなるべく使用しないようにすることが賢明だろう。
たとえば、読者の興味関心を掻き立てると同時に、怪しさも感じられる「無料」というキーワードなどは、スパム認定される恐れが高いといえるだろう。無料という意味合いの文言を使用したい場合は、「費用はかかりません」というようないい換えが必要だ。
また、過度な飾り文字もスパム認定される対象となり得るため、注意が必要だ。
Storage quota exceeded/Message size exceeds remaining…受信者側のメールボックス容量が一杯になっている際に記載されるエラーメッセージ
送信者側には問題はないが受信者側のメールボックスが一杯ではメールを送っても届くことはないため、受信者にメールボックスが一杯になっている旨を伝え、不要なメールを削除してもらうなどしてボックス容量を空けてもらうか、メールボックスの容量上限を増やしてもらおう。
Too much mail date…送信したメールまたは添付ファイルのサイズが大きすぎる場合に記載されるエラーメッセージ
文章だけで構成されているテキストメールと異なり、HTMLメール(メール内に画像や動画を挿入したり、テキストサイズやカラーをカスタマイズできたりする自由な形式のメール)のような容量が大きくなるメールの場合に、このエラーメッセージが記載されることがある。
HTMLメールはメールマガジンなどに使用されますが、文言のみのテキストメールに比べてサイズが大きくなってしまうため、メールを開封できなかったりレイアウトが崩れたりする恐れがある。
添付ファイルを圧縮してサイズを小さくしたり、挿入する画像や動画の数を減らしてみよう。
Your envelope recipient is in my badrcptto list…受信側のメールサーバー、あるいはメールマガジンの購読者に受信拒否設定をされている場合に表示されるエラーメッセージ
受信側のメールサーバーに受信拒否されている場合、送信元IPアドレスの評価をスコア形式で算出するIPレピュテーションスコアが低い可能性がある。IPレピュテーションは、送信ドメイン認証の適切な設定や、適度な頻度でのメール送信によって高めることが可能なのでIPレピュテーションスコアを高める方向性でメール配信を行うよう心がけよう。
また、メールマガジンの購読者に受信拒否設定をされてしまっているということは、その対象者にとって既に不要なメールマガジンであるか送信頻度が高すぎるがゆえに受信拒否されてしまっていることが考えられるので、今一度、自社が配信しているメールが適切な頻度で、適切な対象者に送信されているかどうかをチェックしよう。
エラーコードでもわかるエラー原因
エラーメッセージ同様、エラーコードもまたメール送信時の問題を特定することに役立つ。エラーコードとは、3桁の数字、2つのドットと3つの数字、英文で構成されており、RFC(Request for Comments)と呼ばれる「インターネット上のさまざまな技術の標準化や運用に関する事項といった、幅広い情報を共有するために公開されている文書シリーズ」によって定義づけられている。
RFCだけではなく、GmailやYahoo!メール、Outlookなどにも独自のエラーコードが定義づけられており、その種類は多岐にわたる。そのため、自身が使用しているメールツールによって適切なエラーコードを探すといいだろう。
エラーコードを構成する3つの要素
エラーコードは、3つの要素で構成されている。
1つは応答コードである。これは、コードの最初に記載されている3桁の数字を指す。3桁のうち、最初の数字が「2の場合は成功」「3の場合は成功、続きのデータ要求」「4の場合は一時的なエラー」「5の場合は永続的なエラー」だ。
2つ目はステータスコードで、3つの数字と2つのドットで表示される。応答コードごとに異なる追加情報が記載される部分で、「0は文法エラー」「1はステータスやヘルプ要求への応答」「2は通信チャネルに関する応答」「5は受信側メールシステムの問題など」だ。
3つ目はテキストで、応答コードとステータスコードはプログラム側で判断できるが、人間は数字だけ見ても分からないケースが多いため、人間でも理解できるようにテキストとして記載されている。
おおむね、応答コードとテキストを確認すればどのようなエラーが発生しているのかは判断できるようになっているため、あまり難しく考えなくても問題ない。
エラーコード一覧表
それでは、実際にどのようなエラーコードがあるのか、RFCで定義されている一時的なエラーと永続的なエラーについて一覧にして見ていこう。
一時的なエラー…応答コードの1桁目が4のエラーコード
コード | テキスト | エラーの理由 |
421,4.4.5 | Server busy, try again later. | 送信先サーバーがビジー状態。 |
421,4.7.0 | IP not in whitelist for RCPT domain, closing connection. | 送信元アドレスが受信側のホワイトリストに入っていない。 |
421,4.7.0 | Our system has detected an unusual rate of unsolicited mail originating from your IP address.To protect our users from spam, mail sent from your IP address has been temporarily blocked. | 送信元IPアドレスから大量の迷惑メールが送信されているため、一時的にブロックしている。 |
421,4.7.0 | Temporary System Problem.Try again later | システム上の一時的な問題。 |
421,4.7.0 | TLS required for RCPT domain, closing connection. | 受信側にてTLS(メールの暗号化)の要求が行われた(暗号化されていない)。 |
450,4.1.1 | Recipient address rejected.unverified address. | 受信アドレス認証のないアドレスのため拒否された。 |
450,4.2.1 | The user you are trying to contact is receiving mail too quickly.Please resend your message at a later time.If the user is able to receive mail at that time, your message will be delivered. | メールの送信にかかった時間が短すぎる。※「スロットリング」:メールは一定時間内に受信可能なメール数制限を設けているが、その上限を上回るとメールの受信が拒否される。これを防止するために、メールの送信を遅くさせることを指す。安定したメール配信に役立つ機能。 |
451,4.3.0 | Mail server temporarily rejected message. | メールサーバーで一時的に拒否された。 |
451,4.4.2 | Timeout-closing connection. | タイムアウトの意味。 |
452,4.2.2 | The email account that you tried to reach is over quota. | 送信先のアカウント容量オーバー。 |
永続的なエラー…応答コードの1桁目が5のエラーコード
コード | テキスト | エラーの理由 |
501,5.5.2 | Cannot Decode Response. | 応答の解読不可。 |
502,5.5.1 | Unimplemented command. | コマンド実行不可。 |
530,5.7.0 | Must issue a STARTTLS command first. | メールの暗号化(STARTTLS)が必要。 |
550,5.2.1 | The email account that you tried to reach is disabled. | 送信先メールアドレスが無効。 |
550,5.7.0 | Mail relay denied. | メールリレーが拒否された。 |
550,5.7.1 | Email quota exceeded. | メール容量の超過。 |
550,5.7.1 | Unauthenticated email is not accepted from this domain. | このドメインから認証されていないメールの受け取り不可。 |
552,5.2.2 | The email account that you tried to reach is over quota. | 送信先メールアカウント容量が一杯で新しいメールの受信不可。 |
553,5.1.2 | We weren’t able to find the recipient domain. | 送信先アドレスが見つからない。 |
上記で紹介したようにメールエラーの種類は様々あり、これらのエラーをすべて回避してメールを配信するのは実はとても難しく技術が必要となる。しかし、今回紹介した数多くのエラーコードとその内容を把握、あるいは把握しておかなくてもすぐ確認できるようにしておけば、即座に対応できるようになるだろう。
また、自社のエンジニアの継続的な稼働や専門的な知識を有していない場合は、すべてのエラーを防げる訳ではないが技術を駆使して複数のエラーを回避するような仕組みがあるメール配信システムを活用するのもおすすめだ。