Solaris のシステム管理 (資源管理とネットワークサービス)

メールサービスの障害回避とヒント (手順)

この節では、メールサービスの問題解決に使用できる手順とヒントをいくつか示します。

メール構成をテストする方法

構成ファイルに対して行なった変更をテストするには、次の手順に従います。

  1. 変更した構成ファイルがあるシステムで sendmail を再起動します。


    # pkill -HUP sendmail
    
  2. 各システムからテストメッセージを送信します。


    # /usr/lib/sendmail -v names </dev/null
    

    names

    受信者の電子メールアドレスを指定 

    このコマンドは、指定された受信者に NULL メッセージを送信し、画面にメッセージの動作を表示します。

  3. メッセージを通常のユーザー名に送ることによって、メールを自分自身またはローカルシステム上の他の人に送信します。

  4. (省略可能) ネットワークに接続している場合は、別のシステムの個人宛に次の 3 方向でメールを送信します。

    • メインシステムからクライアントシステムへ

    • クライアントシステムからメインシステムへ

    • クライアントシステムから別のクライアントシステムへ

  5. (省略可能) メールゲートウェイがある場合、メールホストから別のドメインにメールを送信してメールリレープログラムおよびホストが適切に設定されていることを確認します。

  6. (省略可能) 電話回線上に別のホストへの UUCP 接続を設定している場合は、そのホストの誰かにメールを送信し、その個人にメールを返信してもらうか、あるいはその個人がメッセージを受信した時に電話してもらいます。

  7. UUCP 接続を介してメールを送信するように他の人に頼みます。

    sendmail プログラムは、メッセージが配信されたかどうかは検出しません。これは、メッセージが配信のために UUCP に渡されるためです。

  8. 異なるシステムからメッセージを postmaster 宛てに送信し、ポストマスターのメールボックスに配信されることを確認します。

メール別名を確認する方法

別名を確認し、メールが指定された受信者に配信されるかどうかを確認するには、次の手順に従います。

別名を表示し、最終アドレスが配信可能かどうかを特定します。


% /usr/lib/sendmail -v -bv recipient

recipient

受信者の別名を指定 

以下に出力例を示します。


% /usr/lib/sendmail -v -bv sandy
sandy... aliased to ssmith
ssmith... aliased to sandy@phoenix
sandy@phoenix... deliverable: mailer esmtp, host phoenix, user sandy@phoenix.example.com
%

ローカルおよびドメインの両方で別名を使用する場合は、ループやデータベースの不整合が生じないようにしてください。ユーザーをあるシステムから別のシステムに移動する時は、別名のループを作成しないように特に注意してください。

sendmail ルールセットをテストする方法

sendmail ルールセットの入力と戻りを確認するには、次の手順に従います。

  1. アドレステストモードに変更します。


    # /usr/lib/sendmail -bt
    
  2. メールアドレスをテストします。

    最後のプロンプト (>) で次の数値とアドレスを入力します。


    > 3,0 mail_address
    

    mail_address

    テストするメールアドレスを指定 

  3. セッションを終了します。

    Control-D キーを押します。

以下に出力例を示します。


% /usr/lib/sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 sandy@phoenix
canonify           input: sandy @ phoenix
Canonify2          input: sandy < @ phoenix>
Canonify2        returns: sandy < @ phoenix . example . com .>
canonify         returns: sandy < @ phoenix . example . com .>
parse              input: sandy < @ phoenix . example . com .>
Parse0             input: sandy < @ phoenix . example . com .>
Parse0           returns: sandy < @ phoenix . example . com .>
ParseLocal         input: sandy < @ phoenix . example . com .>
ParseLocal       returns: sandy < @ phoenix . example . com .>
Parse1             input: sandy < @ phoenix . example . com .>
MailerToTriple     input: < mailhost . phoenix . example . com> 
     sandy < @ phoenix . example . com .>
MailerToTriple   returns: $# relay $@ mailhost . phoenix . example . com 
     $: sandy < @ phoenix . example . com .>
Parse1           returns: $# relay $@ mailhost . phoenix . example . com 
     $: sandy < @ phoenix . example . com .>
parse            returns: $# relay $@ mailhost . phoenix . example . com 
     $: sandy < @ phoenix . example . com .>

他のシステムへの接続を調べる方法

mconnect プログラムは、指定したホスト上のメールサーバーへの接続を開き、接続をテストできるようにします。プログラムは対話式で実行されるので、さまざまな診断コマンドを実行できます。詳細は、mconnect(1) のマニュアルページを参照してください。次の例では、ユーザー名 sandy へのメールが配信可能かどうかを調べます。


% mconnect phoenix
onnecting to host phoenix (172.31.255.255), port 25
connection open
220 phoenix.example.com ESMTP Sendmail 8.12.0+Sun/8.12.0;Sun, 4 Sep 2001 3:52:56 -0700(PDT)
expn sandy
250 2.1.5 <sandy@phoenix.example.com>
quit

mconnect を使用して SMTP ポートに接続できない場合は、次の条件を確認してください。

エラーメッセージの記録

メールサービスは、syslogd プログラムを使って大部分のエラーメッセージを記録します。デフォルトでは、syslogd プログラムはこれらのメッセージを /etc/hosts ファイルで指定されている loghost というシステムに送信します。loghost が NIS ドメイン全体のすべてのログを保持するように定義できます。loghost を指定しなければ、syslogd からのエラーメッセージはレポートされません。

/etc/syslog.conf ファイルは、syslogd プログラムがメッセージをどこに転送するかを制御します。 /etc/syslog.conf ファイルを編集することにより、デフォルトの構成を変更できます。変更内容を有効にするには、syslog デーモンを再起動する必要があります。メールに関する情報を収集するために、ファイルに次の選択を追加できます。

/etc/syslog.conf ファイルの次のエントリは、すべての重大な情報を含むデバッグメッセージを /var/log/syslog に送信します。


mail.crit;mail.info;mail.debug			/var/log/syslog

システムログの各行には、タイムスタンプ、そのログ行を生成したシステム名、およびメッセージが入っています。syslog ファイルは、大量の情報を記録できます。

ログは、連続したレベルとして並べられます。最下位レベルでは、異常なイベントだけが記録されます。最上位レベルでは、もっとも必須なイベントと注目する必要のないイベントが記録されます。通常、10 以下のログレベルが「有用」とみなされます。10 を超えるログレベルは通常、デバッグに使用されます。loghost および syslogd プログラムの詳細については、Solaris のシステム管理 (上級編)』の「システムのメッセージ記録のカスタマイズ」を参照してください。

メール診断情報のその他の情報源

その他の診断情報については、次の情報源を確認してください。