メールシステムの管理

メールサービスの設定

サイトが企業外の電子メール (email) サービスに接続していないか、または企業が 1 つのドメイン内にある場合は、メールサービスを比較的容易に設定できます。

メールでは、ローカルメール用に 2 種類の構成と、ドメイン外のネットワークとの通信用にさらに 2 つの構成が必要です。これらの構成は、同じシステムで組み合わせるか、または別のシステムで提供できます。表 2-1 の機能を使用するには、サイト上のシステムを設定する必要があります。

表 2-1 メール構成

構成 

説明 

メールクライアント

メールクライアントとは、メールボックスがメールサーバーにあるユーザーを指す 

メールサーバー

メールサーバーは、メールボックスを /var/mail ディレクトリに格納する

メールホスト

少なくとも 1 つのメールホストが必要。メールホストはむずかしい電子メールアドレスを解釈し、ドメイン内でメールを再度ルーティングする 

メールゲートウェイ

メールゲートウェイは、ドメイン外の異なる通信ネットワーク間を接続したり、異なる通信ネットワーク間を接続したりする。ゲートウェイを設定する場合は、必要なゲートウェイ構成ファイルに近いものを探して、それを状況に合わせて修正する 

メールサービスの設定を始める前に、メールサーバー、メールホスト、およびメールゲートウェイとして機能するシステムを選びます。サービスを提供するすべてのメールクライアントのリストも作成し、メールボックスの位置を入れてください。このリストは、ユーザーのメール別名を作成するときに有用です。これらの各システムの持つ機能の詳細は、第 1 章「メールサービスについて」を参照してください。便宜のために、どのシステムがメールサーバー、メールホスト、およびメールゲートウェイとして適しているかのガイドラインをこのあとの節でも再度説明します。

設定を簡単にするために、この章では、個々のメールサーバー、メールホスト、メールクライアント、およびリレーホストを設定するのに必要な操作を示します。メールサービス構成のシステムが複数の機能構成で動作する場合、システムのタイプごとに適切な操作説明に従ってください。たとえば、メールホストとメールサーバーの機能が同じシステムにある場合は、そのシステムをメールホストとして設定するための指示に従い、次に同じシステムをメールサーバーとして設定するための指示に従ってください。


注 -

次のメールサーバーとメールクライアントの設定の手順は、メールボックスが NFS でマウントされているときに適用されます。ただし、通常、メールボックスはローカルにマウントされた /var/mail ディレクトリで管理されます。この場合、このあとの手順は必要ありません。


メールサーバーを設定する方法

メールサーバーはローカルユーザーにメールサービスを提供するだけなので、設定には特別な手順は必要ありません。ユーザーはパスワードファイルか名前空間にエントリが必要です。そのエントリは、メールの配信用にローカルのホームディレクトリが ‾/.forward をチェックできるために必要です。このためにホームディレクトリサーバーがしばしばメールサーバーとして設定されます。

メールサーバーは、クライアントからのすべてのメールのルーティングを行います。メールサーバーに必要な唯一のリソースは、クライアントメールボックスのための十分なスプール空間です。リモートのマウントでは、/var/mail ディレクトリを使用できるようにする必要があります。

この作業のために、/etc/dfs/dfstab ファイルをチェックして /var ディレクトリがエクスポートされていることを確認します。

  1. share と入力して Return キーを押します。

    /var ディレクトリが共用になっていれば、これで終了です。/var ディレクトリがエクスポートされていなければ、次の手順に進みます。

  2. share -F nfs /var/mail と入力して Return キーを押します。

  3. ファイルシステムを永久的に共用するには、/etc/dfs/dfstab を編集して、手順 2 で使用したコマンド行を追加します。


注 -

mail.local プログラムは、メッセージが初めて配信されたときに /var/mail ディレクトリでメールボックスを自動的に作成します。メールクライアントのために個々のメールボックスを作成する必要はありません。


メールクライアントを設定する方法

メールクライアントは、メールボックスがメールサーバーにあり、/etc/mail/aliases ファイルのメール別名がメールボックスの位置を指しているメールサービスのユーザーです。

  1. メールクライアントのシステムでスーパーユーザー になります。

  2. メールクライアントのシステムで /var/mail マウントポイントがあることを確認します。

  3. メールサーバーから /var/mail ディレクトリをマウントします。

    メールディレクトリが自動的にマウントされるか、ブート時にマウントされます。

    1. /var/mail を自動的にマウントするには、/etc/auto_direct を編集して下記のようなエントリを追加します。


      /var/mail -rw,hard,actimeo=0 server:/var/mail 
    2. ブート時に /var/mail をマウントするには、etc/vfstab ファイルを編集して、メールサーバーに /var/mail ディレクトリのエントリを追加し、それをローカルの /var/mail ディレクトリにマウントします。


      server:/var/mail - /var/mail nfs - no rw,hard,actimeo=0

      システムをリブートするたびに、クライアントのメールボックスが自動的にマウントされます。クライアントのメールボックスをマウントするには、システムをリブートする前に、mountall と入力します。


      注意 - 注意 -

      NFS サーバーからメールをマウントするときは、メールボックスのロックとアクセスが適切に行われるように、actimeo=0 オプションを含める必要があります。


  4. システム管理ツール (admintool) を使用して /etc/hosts ファイルを編集し、メールサーバーのエントリを追加します。

    ネームサービスを使用している場合には、この手順は不要です。

  5. 別名ファイルの 1 つにクライアントのエントリを追加します。

    異なるタイプのメール構成に対してメール別名を作成する方法については、「メール別名の作成」を参照してください。


    注 -

    mail.local プログラムは、メッセージが初めて配信されるときに /var/mail ディレクトリでメールボックスを自動的に作成します。メールクライアントのために個々のメールボックスを作成する必要はありません。


メールホストを設定する方法

メールホストは、電子メールアドレスを解決し、ドメイン内でメールを再度ルーティングします。メールホストに適しているシステムは、ドメイン外または親ドメインに接続されているシステムです。

  1. メールホストシステムでスーパーユーザーになります。

  2. ホスト名の構成を確認します。

    次のように check-hostname スクリプトを実行し、sendmail が、このサーバーの完全指定ホスト名を識別できるかどうかを確認します。


    # /usr/lib/mail/sh/check-hostname
    hostname phoenix OK: fully qualified as phoenix.eng.acme.com

    このスクリプトによる完全指定ホスト名の識別ができなかった場合は、完全指定ホスト名を、/etc/hosts 内のホストの最初の別名として追加する必要があります。

  3. 管理ツールを使用して /etc/hosts ファイルを編集します。

    IP アドレスとメールホストシステムのシステム名の後に、mailhostmailhost.domainname を追加します。このシステムがメールホストシステムとして指定されます。domainname は、このコマンド (/usr/lib/sendmail -bt -d0 </dev/null) で出力されるサブドメイン名と同じにする必要があります。


    # /usr/lib/sendmail -bt -d0 </dev/null
    Version 8.9.0+Sun
     Compiled with: MAP_REGEX LOG MATCHGECOS MIME7TO8 MIME8TO7 NAMED_BIND 
                    NDBM NETINET NETUNIX NEWDB NIS NISPLUS QUEUE SCANF SMTP
                    USERDB XDEBUG
     
    ============ SYSTEM IDENTITY (after readcf) ============
          (short domain name) $w = phoenix
      (canonical domain name) $j = phoenix.eng.acme.com
             (subdomain name) $m = eng.acme.com
                  (node name) $k = phoenix
    ======================================================== 
  4. ホストファイルの 1 つに新規メールホストのエントリを作成します。

    NIS または NIS+ を使用する場合は、mailhost および mailhost.domainname と呼ばれるホスト別名を含むエントリを、新規メールホストのホストエントリに追加します。

    NIS または NIS+ を使用しない場合は、ネットワーク上の各システム用に、/etc/hosts にエントリを作成する必要があります。エントリでは、必ず IP address mailhost_name mailhost mailhost.domainname というフォーマットを使用してください。

  5. cp /etc/mail/main.cf /etc/mail/sendmail.cf と入力して Return キーを押します。

    これにより、/etc/mail/main.cf ファイルがコピーされ、名前が変更されます。

  6. sendmail を再起動し、メール構成をテストします。

    詳細は、「メール構成をテストする方法」を参照してください。

メールゲートウェイを設定する方法

メールゲートウェイは、ドメイン外のネットワークとの通信を管理します。送信側メールゲートウェイ上のメールプログラムは、受信側システムのメールプログラムと同じでなければなりません。

メールゲートウェイに適しているシステムは、Ethernet および電話回線に接続されているシステムか、またはインターネットへのルーターとして設定されているシステムです。メールホストをメールゲートウェイとして設定するか、または別のシステムをメールゲートウェイとして設定できます。複数のメールゲートウェイを自分のドメイン用として設定できます。UUCP 接続がある場合は、UUCP 接続をメールゲートウェイとするシステム (1 つまたは複数のシステム) を設定してください。

  1. メールゲートウェイでスーパーユーザーになります。

  2. cp /etc/mail/main.cf /etc/mail/sendmail.cf と入力して Return キーを押します。

    このコマンドにより、main.cf ファイルがコピーされ、名前が変更されます。

  3. ホスト名の構成を確認します。

    次のように check-hostname スクリプトを実行し、sendmail が、このサーバーの完全指定ホスト名を識別できるかどうかを確認します。


    # /usr/lib/mail/sh/check-hostname
    hostname phoenix OK: fully qualified as phoenix.eng.acme.com

    このスクリプトによる完全指定ホスト名の識別ができなかった場合は、完全指定ホスト名を、/etc/hosts 内のホストの最初の別名として追加する必要があります。

  4. sendmail を再起動し、メール構成をテストします。

    「メール構成をテストする方法」を参照してください。