このページの本文へ

サーバトラブル解決のセオリー 第8回

いつもメーラの設定ミスとはいい切れない

メールサーバからメールが送信されない

2009年08月21日 09時00分更新

文● のりぞう

  • この記事をはてなブックマークに追加
  • 本文印刷

ローカルメールサーバがすぐにエラーを返してくる

 今度はクライアントがメール配送を依頼したメールサーバ(ここではローカルメールサーバと呼ぶことにする)から即座にエラーメールが返される場合だ。

 このトラブルは、ローカルメールサーバが送信先のメールアドレスから配送先を特定できない場合などに起きる。配送先のメールサーバが特定できているが配送が完了しない場合は、先ほどの例のようにメールはメールキューに滞留し、即座にエラーメールが返されることはない。

 たとえば、存在しないドメイン名を含むメールはローカルメールサーバが配送先を特定できないので画面4のようにエラーとなる。確かに存在するメールアドレスへのメール配送なのに、同様のエラーメールが返されるならDNSサーバの不調かもしれない。nslookupやdigなどのコマンドでDNSサーバの動作を調べてみよう。

画面4 実在しないドメインのホストにメールを送ろうとして返されるエラーメール。ローカルメールサーバはnori-z@localnet.localというメールアドレスに送信しようとしたが、localnet.localをDNSサーバに問い合わせても解決できないためエラーになった

エラーメールの内容を確認する

 メールサーバはメールの配送に失敗すると“MAILER-DAEMON”という名前でエラーメールを返す。エラーメールには配送が失敗した理由と元のメールの内容が記録されているので、これを調べることでトラブルの原因がわかることも多い。

エラーメールの送信元

 エラーメールを送信した“MAILER-DAEMON”がどのメールサーバのものかはメールヘッダのFromフィールドで確認できる。配送不能エラーはそのメールサーバで発生している。

ステータスコード

 配送できない理由は、SMTPのリプライコードや、のちに作られた「拡張されたメールシステムステータスコード」で示される。

 SMTPのリプライコードは連続した3桁の数字で表わされ、4xxは一時的なエラーを、5xxは恒久的なエラーを意味する。ステータスコードは“.”(ドット)で区切られた3つの数字で示され、リプライコードと同じように、4.x.xは一時的な失敗を、5.x.xは恒久的な失敗を意味する。リプライコードの詳細はRFC2821で、ステータスコードはRFC1893でそれぞれ規定されているが、多くの場合エラーメールにコードとともに短い英文の説明が併記されている。

 先ほど示した画面4の例では、リプライコード550(Host unkown)、ステータスコード5.1.2(正しくない宛先アドレス。“@”の右側が不正)が記されていることがわかる。

(次ページ、「スパムブロックの影響」に続く)


 

カテゴリートップへ

この連載の記事