今回は、メールのやりとりができないトラブルを紹介する。クライアント環境を変更したという、よくある環境で発生したものだ。このトラブルも、パケット・キャプチャー・ツールのWiresharkを使ってトラブルの原因を見つけられた。

新しいクライアントでメールを受信できない

図1●新しいクライアントパソコンでメールを受信できない
図1●新しいクライアントパソコンでメールを受信できない
社内ネットワークに購入したばかりのパソコンをつなげ、メール・クライアント・ソフトの設定を行った。この環境でメールの受信を行うと、エラーが起こった。
[画像のクリックで拡大表示]

 今回のトラブルは、社内ネットワークに接続するクライアントパソコンを新調し、つなげてメール・クライアント・ソフトを設定してもメールを受け取れないというものだ(図1)。図内のエラー画面は、Windows XPが標準で備えるメール・クライアント・ソフト「Outlook Express」のものである。

 この社内ネットワークでは、DHCPサーバーが各クライアントパソコンにネットワーク情報を割り振る。メールサーバーは、社内ネットワーク内に2台ある。ルーターやファイアウォールで区切ったDMZ(非武装地帯)と内部ネットワークにそれぞれ置いている。メールのやりとりは内部ネットワークのメールサーバーが管理し、DMZ内のメールサーバーが中継する設定にしている。クライアントパソコンでは、メール・クライアント・ソフトに内部ネットワークのメールサーバーを登録する。

pingコマンドで疎通確認を行う

 まず、クライアントパソコンとメールサーバーが通信できるかどうかを確認する。これがうまくいかない場合は、DHCPサーバーから正しいネットワーク情報を割り振られていない、メールサーバーがダウンしているといったことが考えられる。

図2●pingコマンドでメールサーバーと疎通確認を行う
図2●pingコマンドでメールサーバーと疎通確認を行う
[画像のクリックで拡大表示]

 コマンドプロンプトを起動して「ping」と入力し、その後ろにスペースとメールサーバー名もしくはIPアドレスを入れてEnterキーを押す(図2)。すると4回の疎通確認が実行され、それにかかった時間とTTLの値が表示される。TTLはパケットの生存期限を表し、応答したコンピュータがその初期値を決める。そしてパケットが到着するまでに経由したルーターの数だけその値が減り、その残数が表示されている。図2の結果を見ると、4回ともすぐに応答があり、TTLの値がすべて同じことから、サーバーや通信経路には問題がないことがわかる。

メールサーバーとのやりとりを見る

 では、メールサーバーとの通信内容の中身を確認してみよう。

図3●Wiresharkを使ってキャプチャーを開始し、メールの受信を行う
図3●Wiresharkを使ってキャプチャーを開始し、メールの受信を行う
キャプチャーが始まると、その結果が順に表示される。画面はバージョン1.4.0のもの。
[画像のクリックで拡大表示]

 最初に、Wiresharkを起動する。画面左上にある「List the available capture interfaces」ボタンをクリックして、認識しているNICの一覧を表示する(図3の(1))。ここで、キャプチャー対象のNICの行にある「Start」ボタンを押すと、キャプチャーが始まる(同(2))。

 メイン画面でキャプチャー結果が上から下にリアルタイムで表示されるようになったら、メール・クライアント・ソフトを起動してメールの受信を試みる。エラー画面が表示されたら、Wiresharkのメイン画面に戻って、上部にある左から4番目の「Stop the running live capture」ボタンをクリックしてキャプチャーを停止する(同(3))。

 Wiresharkのメイン画面には、キャプチャー結果が表示されているが、ここからエラー原因を探るには余分な結果を排除したい。そこで、メール受信にかかわるデータに絞り込むため、POPに関するものだけにフィルターをかけよう。POPとは、メールサーバーからクライアントが受信メールを受け取るときに使われる通信プロトコルである。なお、別のプロトコルを利用している場合はそれを指定してその中身を確認する。

図4●フィルター機能を使ってプロトコルをPOPに限定する
図4●フィルター機能を使ってプロトコルをPOPに限定する
POPは、クライアントがサーバーから受信メールを受け取るときに利用するプロトコル。なお、画面上ではプロトコル名は大文字で「POP」と表記されるが、Filter欄で指定するときはすべて小文字で「pop」と入力する。画面はバージョン1.4.0のもの。
[画像のクリックで拡大表示]

 絞り込みには、Wiresharkのフィルター機能を利用する。画面の上部にある「Filter」欄に絞り込みたいプロトコル名を入力する。ここでは「pop」と入れる(図4の(1))。Wiresharkのキャプチャー結果では、「Protocol」欄にプロトコル名が表示される。ここでは大文字表記になっているが、フィルター機能を利用するときは小文字にしなければならない。なお、Filter欄に入力した内容でキャプチャー結果に該当するものがないときは、Filter欄がピンク色になる。そして完全一致するものがあると薄緑色に変わるので、スペルミスなども即座に気付く。

 プロトコル名を指定したら、Filter欄の右側にある「Apply」をクリックすると絞り込んだ結果が表示される(同(2))。すると、結果の最後の行(10行目)にある「Info」欄にエラー結果の内容が表示されている(同(3))。

 「-ERR invalid user/password」というのは、「エラー 無効なユーザー名とパスワード」という意味である。メール・クライアント・ソフトからメールサーバーに送ったユーザー名とパスワードの組み合わせに間違いがあるということだ。

 この後トラブルの原因を調査した結果、ユーザーがメール・クライアント・ソフトで設定したユーザー名かパスワードを入力ミスしていることがわかった。