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

メールサービスの設定 (作業)

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

ローカルメール用に 2 つのタイプの構成が必要です。これらの構成については、ローカルメール専用図 25–1 を参照してください。ドメイン外のネットワークと通信するためには、さらに 2 つのタイプの構成が必要です。これらの構成については、ハードウェアコンポーネントの概要図 24–1 または ローカルメールとリモート接続図 25–2 を参照してください。これらの構成は、同じシステムで組み合わせるか、または別のシステムで提供できます。たとえば、同じシステムにメールホストとメールサーバーの機能を持たせる場合は、この節の説明に従って、まずそのシステムをメールホストとして設定します。次に、この節の説明に従って、同じシステムをメールサーバーとして設定します。


注 –

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


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

メールサーバーはローカルユーザーにメールサービスを提供するだけなので、設定には特別な手順は必要ありません。ユーザーはパスワードファイルまたは名前空間にエントリが必要です。さらに、メールが配信されるためには、ユーザーはローカルのホームディレクトリを用意して、 ~/.forward ファイルを確認する必要があります。 このため、ホームディレクトリサーバーがしばしばメールサーバーとして設定されます。メールサーバーについては、第 26 章「メールサービス (リファレンス)」ハードウェアコンポーネントでさらに詳しく説明します。

メールサーバーは、メールクライアント宛てにメールを経路指定します。このタイプのメールサーバーは、クライアントのメールボックス用に十分なスプール空間が必要です。


注 –

クライアントが自分のメールボックスにアクセスするには、/var/mail ディレクトリをリモートマウントに利用できなければなりません。または、POP (Post Office Protocol)、IMAP (Internet Message Access Protocol) などのサービスをサーバーから利用できなければなりません。以下では、/var/mail ディレクトリを使ってメールサーバーを設定する方法を示します。このマニュアルでは、POP または IMAP の構成方法については説明しません。


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

  1. メールサーバーのスーパーユーザーになるか、同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. sendmail を停止します。


    # /etc/init.d/sendmail stop
    
  3. /var/mail ディレクトリをリモートアクセスに使用できるかどうかを確認します。


    # share
    

    /var/mail ディレクトリが表示された場合は、手順 5 に進みます。

    /var/mail ディレクトリが表示されない場合、あるいはリストが表示されない場合は、該当する手順に進みます。

    1. (省略可能) リストが表示されない場合は、NFS サービスを起動します。

      ファイルシステム自動共有を設定する方法 の手順に従って、 /var/mail ディレクトリを使用して NFS サービスを起動します。

    2. (省略可能) /var/mail ディレクトリがリストに含まれていない場合は、/var/mail ディレクトリを /etc/dfs/dfstab に追加します。

      /etc/dfs/dfstab ファイルに次のコマンド行を追加します。


      share -F nfs -o rw /var/mail
      
  4. ファイルシステムをマウントできるようにします。


    # shareall
    
  5. ネームサービスが起動されていることを確認します。

    1. (省略可能) NIS を実行している場合は、次のコマンドを使用します。


      # ypwhich
      

      詳細は、ypwhich(1) のマニュアルページを参照してください。

    2. (省略可能) NIS+ を実行している場合は、次のコマンドを使用します。


      # nisls
      

      詳細は、nisls(1) のマニュアルページを参照してください。

    3. (省略可能) DNS を実行している場合は、次のコマンドを使用します。


      # nslookup hostname
      

      hostname

      ホスト名を指定 

      詳細は、nslookup(1M) のマニュアルページを参照してください。

    4. (省略可能) LDAP を実行している場合は、次のコマンドを使用します。


      # ldaplist
      

      詳細は、ldaplist(1) のマニュアルページを参照してください。

  6. sendmail を再起動します。


    # /etc/init.d/sendmail start
    

注 –

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


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

メールクライアントは、メールサーバー上にメールボックスを持っている、メールサービスのユーザーです。メールクライアントにはさらに、/etc/mail/aliases ファイルで、メールボックスの位置を示すメール別名が設定されています。第 26 章「メールサービス (リファレンス)」ハードウェアコンポーネントに、メールクライアントについての簡単な説明があります。


注 –

POP (Post Office Protocol) または IMAP (Internet Message Access Protocol) のようなサービスを使ってメールクライアントを設定することもできます。ただし、POP または IMAP の構成方法については、このマニュアルでは説明していません。


  1. メールクライアントシステム上でスーパーユーザーになるか、同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. sendmail を停止します。


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

    マウントポイントは、インストール過程で作成されています。ls を使用すると、ファイルシステムが存在するかどうかを確認できます。次の例はファイルシステムが作成されていない場合に受け取る応答を示しています。


    # ls -l /var/mail
    /var/mail not found
  4. /var/mail ディレクトリにファイルが何もないことを確認します。

    メールファイルがこのディレクトリにある場合は、それらのファイルを移動させ、サーバーから /var/mail ディレクトリがマウントされる時にその対象とならないようにします。

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

    メールディレクトリは自動的にマウントすることも、ブート時にマウントすることもできます。

    1. (省略可能) /var/mail を自動的にマウントします。

      次のようなエントリを /etc/auto_direct ファイルに追加します。


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

      server

      割り当てられているサーバー名を指定 

    2. (省略可能) ブート時に /var/mail をマウントします。

      /etc/vfstab ファイルに以下のエントリを追加します。このエントリにより、指定されたメールサーバー上の /var/mail ディレクトリがローカルの /var/mail ディレクトリをマウントできます。


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

      システムをリブートするたびに、クライアントのメールボックスが自動的にマウントされます。 システムをリブートしない場合は、次のコマンドを入力すれば、クライアントのメールボックスをマウントできます。


      # mountall
      

      注意 – 注意 –

      メールボックスのロックとメールボックスへのアクセスが適切に動作するには、NFS サーバーからメールをマウントする時に actimeo=0 オプションを入れる必要があります。


  6. /etc/hosts を更新します。

    /etc/hosts ファイルを編集し、メールサーバーのエントリを追加します。ネームサービスを使用する場合、この手順は必要ありません。


    # cat /etc/hosts
    #
    # Internet host table
    #
    ..
    IP_address     mailhost  mailhost  mailhost.example.com
    

    IP_address

    割り当てられている IP アドレスを指定 

    example.com

    割り当てられているドメインを指定 

    mailhost

    割り当てられているメールホストを指定 

    詳細は、hosts(4) のマニュアルページを参照してください。

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

    メール別名ファイルの管理に関する作業マップについては、メール別名ファイルの管理 (作業マップ) を参照してください。


    注 –

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


  8. sendmail を再起動します。


    # /etc/init.d/sendmail start
    

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

メールホストは、電子メールアドレスを解決し、ドメイン内でメールを再度ルーティングします。メールホストに適しているのは、ネットワークにリモート接続を提供するシステム、または親ドメインにネットワークを接続するシステムです。 次に、メールホストを設定する手順を示します。

  1. メールホストシステム上でスーパーユーザーになるか、同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. sendmail を停止します。


    # /etc/init.d/sendmail stop
    
  3. ホスト名の構成を確認します。

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


    % /usr/lib/mail/sh/check-hostname
    hostname phoenix OK: fully qualified as phoenix.example.com

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

  4. /etc/hosts ファイルを更新します。

    以下から、適切な手順を選択します。

    1. (省略可能) NIS または NIS+ を使用している場合は、新しいメールホストとなるシステムの /etc/hosts ファイルを編集します。

      メールホストシステムの IP アドレスとシステム名の後に mailhostmailhost.domain を追加します。


      IP_address mailhost mailhost mailhost.domain loghost

      IP_address

      割り当てられている IP アドレスを指定 

      mailhost

      メールホストシステムのシステム名を指定 

      domain

      拡張ドメイン名を指定 

      これで、このシステムはメールホストとして指定されます。domain は、次のコマンドの出力にサブドメイン名として指定されている文字列と同じにする必要があります。


      % /usr/lib/sendmail -bt -d0 </dev/null
      Version 8.12.0+Sun
       Compiled with: LDAPMAP MAP_REGEX LOG MATCHGECOS MIME7TO8 MIME8TO7
                      NAMED_BIND NDBM NETINET NETINET6 NETUNIX NEWDB NIS
                      NISPLUS QUEUE SCANF SMTP USERDB XDEBUG
      
      ============ SYSTEM IDENTITY (after readcf) ============
            (short domain name) $w = phoenix
        (canonical domain name) $j = phoenix.example.com
               (subdomain name) $m = example.com
                    (node name) $k = phoenix
      ========================================================

      以上の変更を行なった後の hosts ファイルの例を以下に示します。


      # cat /etc/hosts
      #
      # Internet host table
      #
      172.31.255.255   localhost        
      192.168.255.255  phoenix mailhost mailhost.example.com loghost
    2. (省略可能) NIS または NIS+ を使用しない場合は、ネットワーク内の各システムにある /etc/hosts ファイルを編集します。次のようなエントリを作成します。


      IP_address mailhost mailhost mailhost.domain loghost
  5. 正しい構成ファイルを選択し、コピーして名前を変更します。

    次のコマンドは、/etc/mail/main.cf ファイルをコピーし名前を変更します。


    # cp /etc/mail/main.cf /etc/mail/sendmail.cf
    
  6. sendmail を再起動します。


    # /etc/init.d/sendmail start
    
  7. メール構成をテストします。

    手順については、メール構成をテストする方法 を参照してください。

メールホストの詳細については、第 26 章「メールサービス (リファレンス)」ハードウェアコンポーネントを参照してください。

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

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

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

  1. メールゲートウェイ上でスーパーユーザーになるか、同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. sendmail を停止します。


    # /etc/init.d/sendmail stop
    
  3. 正しい構成ファイルを選択し、コピーして名前を変更します。

    次のコマンドは main.cf ファイルをコピーし名前を変更します。


    # cp /etc/mail/main.cf /etc/mail/sendmail.cf
    
  4. ホスト名の構成を確認します。

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


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

    このスクリプトによる完全指定ホスト名の識別ができなかった場合は、完全指定ホスト名を /etc/hosts 内のホストの最初の別名として追加する必要があります。この手順の詳細については、メールホストを設定する方法手順 4 を参照してください。

  5. ネームサービスが起動されていることを確認します。

    1. (省略可能) NIS を実行している場合は、次のコマンドを使用します。


      # ypwhich
      

      詳細は、ypwhich(1) のマニュアルページを参照してください。

    2. (省略可能) NIS+ を実行している場合は、次のコマンドを使用します。


      # nisls
      

      詳細は、nisls(1) のマニュアルページを参照してください。

    3. (省略可能) DNS を実行している場合は、次のコマンドを使用します。


      # nslookup hostname
      

      hostname

      ホスト名を指定 

      詳細は、nslookup(1M) のマニュアルページを参照してください。

    4. (省略可能) LDAP を実行している場合は、次のコマンドを使用します。


      # ldaplist
      

      詳細は、ldaplist(1) のマニュアルページを参照してください。

  6. sendmail を再起動します。


    # /etc/init.d/sendmail start
    
  7. メール構成をテストします。

    手順については、メール構成をテストする方法 を参照してください。

メールゲートウェイの詳細については、第 26 章「メールサービス (リファレンス)」ハードウェアコンポーネントを参照してください。

sendmail で DNS を使用する方法

DNS ネームサービスは、個別の別名をサポートしません。このネームサービスは、MX (メール交換局) レコードおよび CNAME レコードを使用するホストまたはドメインの別名をサポートします。ホスト名とドメイン名は両方またはいずれか一方を DNS データベースで指定できます。sendmail と DNS の詳細については、第 26 章「メールサービス (リファレンス)」sendmail とネームサービスの相互作用、または『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。

  1. スーパーユーザーになるか、またはそれと同等の役割になります。

    役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。

  2. DNS ホストルックアップ機能を有効にします (NIS のみ)。

    /etc/nsswitch.conf ファイルを編集し、dns フラグを含む hosts の定義から # を削除します。DNS ホスト別名を使用するには、次の例に示すように、ホストエントリに dns フラグが含まれている必要があります。


    # grep hosts /etc/nsswitch.conf
    #hosts:     nisplus [NOTFOUND=return] files
    hosts:      dns nisplus [NOTFOUND=return] files
  3. mailhostmailhost.domain エントリを確認します。

    nslookup を使用して、mailhostmailhost.domain のエントリが DNS データベースに存在することを確認します。詳細は、nslookup(1M) のマニュアルページを参照してください。

仮想ホストを設定する方法

ホストに複数の IP アドレスを割り当てる必要がある場合は、次の Web サイト http://www.sendmail.org/virtual-hosting.html を参照してください。このサイトでは、sendmail を使って仮想ホストを設定する方法を詳しく説明しています。ただし、「Sendmail Configuration」の節では、次に示す手順 3b は実行しないでください。


# cd sendmail-VERSION/cf/cf
# ./Build mailserver.cf
# cp mailserver.cf /etc/mail/sendmail.cf

代わりに、Solaris オペレーティング環境では、次の手順を実行してください。


# cd /usr/lib/mail/cf
# /usr/ccs/bin/make mailserver.cf
# cp mailserver.cf /etc/mail/sendmail.cf

mailserver

.cf ファイルの名前を指定

sendmail.cf 構成ファイルの構築 (手順) では、構築手順の一部として、これと同じ 3 つの手順を説明しています。

/etc/mail/sendmail.cf ファイルを生成したら、次の手順に進み、仮想ユーザーテーブルを作成できます。