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

パート IV メールサービス (トピック)

このパートでは、メールサービスの概要、作業、およびリファレンス情報について説明します。

第 12 章 メールサービス (概要)

電子メールサービスの設定と維持管理には、ネットワークの日常の運用にとって不可欠な、複雑な作業が伴います。ネットワーク管理者は、既存のメールサービスを拡張しなければならない場合があります。または、新しいネットワークまたはサブネット上でメールサービスを設定しなければならないこともあります。メールサービスに関する各章では、ネットワークでメールサービスを計画したり設定したりするために必要な情報を提供します。この章では、sendmail の新機能の説明へのリンクを用意し、参考資料を紹介します。この章ではまた、メールサービスを確立するために必要なソフトウェアおよびハードウェアコンポーネントの概要を説明します。

第 13 章メールサービス (手順)では、メールサービスの設定および管理方法の手順を説明します。詳細は、「メールサービス (作業マップ)」を参照してください。

メールサービスのコンポーネントについての詳細は、第 14 章メールサービス (リファレンス)を参照してください。この章では、メールサービスのプログラムとファイル、メールルーティング処理、ネームサービスを使った sendmail の対話型操作、sendmail version 8.13 の機能についても説明します。sendmail の version 8.13 での変更点」を参照してください。

メールサービスの新機能

この節では、さまざまな Solaris リリースの新機能について説明します。

このリリースでの変更点

Solaris 10 7/10 リリース リリースでは、次の変更点が加えられました。

Solaris 10 1/06 リリースでの変更点

Solaris 10 1/06 以降のリリースでは、sendmail は Transport Layer Security (TLS) を使用した SMTP をサポートしています。詳細については、次を参照してください。

Solaris 06 10/9 リリースに含まれる新機能の完全な一覧については、『Oracle Solaris 10 9/10 の新機能』を参照してください。

Solaris 10 リリースでの変更点

Solaris 10 以降のリリースでは、sendmail version 8.13 がデフォルトになっています。version 8.13 に関する情報とほかの変更点については、次を参照してください。

さらに、メールサービスは、サービス管理機能によって管理されています。このサービスに関する有効化、無効化、再起動などの管理アクションは svcadm コマンドを使用して実行できます。サービスの状態は、svcs コマンドを使用して照会できます。サービス管理機能の詳細は、smf(5) のマニュアルページおよび『Solaris のシステム管理 (基本編)』の第 18 章「サービスの管理 (概要)」を参照してください。

sendmail のその他の情報

次に、上記以外の sendmail 関連の参考資料を示します。

メールサービスのコンポーネントの概要

メールサービスを確立するためには、多くのソフトウェアコンポーネントおよびハードウェアコンポーネントが必要になります。次では、これらのコンポーネントについて簡単に紹介します。コンポーネントの説明で使用する用語についても紹介します。

最初の節 「ソフトウェアコンポーネントの概要」では、メール配信システムのソフトウェア部分を説明するのに使用する用語を定義します。その次の節 「ハードウェアコンポーネントの概要」では、メール構成におけるハードウェアシステムの機能について取り上げます。

ソフトウェアコンポーネントの概要

次の表にメールシステムのソフトウェアコンポーネントを示します。ソフトウェアコンポーネントすべてに関する詳細については、「ソフトウェアコンポーネント」を参照してください。

コンポーネント 

説明 

.forward ファイル

ユーザーのホームディレクトリ内で設定して、メールを自動的にリダイレクトしたり、プログラムに送ったりすることができるファイル 

メールボックス 

メールサーバー上にあり、電子メールメッセージの最終受信先であるファイル 

メールアドレス 

メールメッセージが配信される受信者とシステムの名称を含むアドレス 

メール別名 

メールアドレス内で使用されている代替名 

メールキュー 

メールサーバーによる処理を必要とするメールメッセージの集まり 

ポストマスター 

メールサービスについての問題を報告し質問を出すために使用される特別なメール別名 

sendmail 構成ファイル 

メールのルーティングに必要なすべての情報の入ったファイル 

ハードウェアコンポーネントの概要

メール構成では次の 3 つの要素が必要ですが、これらは同じシステムで組み合わせることも、別のシステムで提供することもできます。

ユーザーがドメイン外のネットワークと通信をするためには、4 番目の要素であるメールゲートウェイを追加する必要があります。

図 12–1 には、一般的な電子メール構成を示しますが、ここでは基本的な 3 つのメール要素とメールゲートウェイが使用されています。

図 12–1 一般的な電子メール構成

この図は、メールゲートウェイ、メールホスト、メールサーバー、メールボックス、およびクライアント間の関係を示しています。

各要素については、「ハードウェアコンポーネント」を参照してください。

第 13 章 メールサービス (手順)

この章ではメールサービスを設定し、管理する方法について説明します。メールサービスの管理に詳しくない場合は、メールサービスのコンポーネントを紹介している第 12 章メールサービス (概要)を参照してください。この章では、一般的なメールサービス構成についても説明しています (図 12–1 を参照)。この章では、次の関連作業について説明します。

メールサービスのコンポーネントについての詳細は、第 14 章メールサービス (リファレンス)を参照してください。また、この章では、メールサービスのプログラムとファイル、メールルーティング処理、ネームサービスを使った sendmail の対話型操作、sendmail(1M) のマニュアルページで十分に説明されていない sendmail の version 8.13 での機能についても説明します。

メールサービス (作業マップ)

次の表から、具体的な一連の手順を扱っているほかの作業マップがわかります。

作業 

説明 

参照先 

メールサービスの設定 

メールサービスの各コンポーネントを設定する手順。メールサーバー、メールクライアント、メールホスト、およびメールゲートウェイの設定方法について説明します。sendmail で DNS を利用する方法について説明します。

「メールサービスの設定 (作業マップ)」

sendmail 構成ファイルの変更 

構成ファイルまたはサービスプロパティーを変更する手順。  

「sendmail 構成の変更 (作業マップ)」

メール別名ファイルの管理 

ネットワークで別名を提供するための手順。NIS+ テーブルのエントリの管理方法を説明します。また、NIS マップ、ローカルメール別名、キー付きマップファイル、およびポストマスター別名の設定方法も説明します。 

「メール別名ファイルの管理 (作業マップ)」

メールキューの管理 

スムーズなキュー処理を提供するための手順。メールキューを表示したり移動したりする方法、強制的なメールキュー処理方法、およびメールキューのサブセットの実行方法について説明します。古いメールキューの実行方法についても説明します。 

「キューディレクトリの管理 (作業マップ)」

.forward ファイルの管理

.forward ファイルを無効にしたり、.forward ファイルの検索パスを変更したりする手順。/etc/shells を作成し生成することにより、.forward ファイルの使用をユーザーに許可する方法も説明します。

.forward ファイルの管理 (作業マップ)」

メールサービスのトラブルシューティング手順とヒント 

メールサービスで発生した問題を解決するための手順とヒント。メール構成のテスト、メール別名の確認、sendmail ルールセットのテスト、ほかのシステムへの接続の確認、メッセージの記録などの方法について学びます。ほかのメール診断情報の情報源も紹介します。

「メールサービスの障害対処とヒント (作業マップ)」

エラーメッセージの解釈処理 

メール関連のエラーメッセージを解釈処理するための情報。 

「エラーメッセージの解釈」

メールシステムの計画

次に、メールシステムを計画するときに考慮すべき点を挙げます。

メールシステムの計画を立てたら、サイトにシステムを設定し、「メールサービスの設定 (作業マップ)」で説明する機能を実行します。ほかの作業については、「メールサービス (作業マップ)」を参照してください。

ローカルメール専用

図 13–1 に示すように、もっとも単純なメール構成は、1 台のメールホストに 2 台以上のワークステーションが接続されている場合です。メールは完全にローカルです。すべてのクライアントがローカルのディスクにメールを格納し、すべてのクライアントがメールサーバーとして機能します。メールアドレスは /etc/mail/aliases ファイルを使って構文解析されます。

図 13–1 ローカルメール構成

この図は、メールホストとメールクライアントとの関係を示しています。

この種類のメール構成を設定するには、次が必要です。

メールサービスの設定の詳細については、「メールサービスを設定する」を参照してください。メールサービスの設定に関する特定の手順については、「メールサービスの設定 (作業マップ)」を参照してください。

ローカルメールとリモート接続

小規模のネットワークにおけるもっとも一般的なメール構成を図 13–2 に示します。1 つのシステムが、メールサーバー、メールホスト、およびリモート接続を行うメールゲートウェイを兼ねています。メールは、メールゲートウェイ上の /etc/mail/aliases ファイルを使って配布されます。ネームサービスは必要ありません。

図 13–2 UUCP 接続を使ったローカルメール構成

この図は、メールクライアントとメールゲートウェイとの関係を示しています。

この構成では、メールクライアントがメールホスト上の /var/mail からメールファイルをマウントすると想定できます。この種類のメール構成を設定するには、次が必要です。

メールサービスの設定の詳細については、「メールサービスを設定する」を参照してください。メールサービスの設定に関する特定の手順については、「メールサービスの設定 (作業マップ)」を参照してください。

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

次の表では、メールサービスの設定の手順を説明します。

作業 

説明 

参照先 

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

サーバーがメールを経路指定できるようにする手順 

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

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

ユーザーがメールを受信できるようにする手順 

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

メールホストを設定する 

電子メールアドレスを解釈処理できるメールホストを確立する手順 

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

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

ドメイン外のネットワークとの通信を管理する手順 

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

sendmail で DNS を使用する

DNS ホストルックアップ機能を有効にする手順 

sendmail で DNS を使用する方法」

メールサービスを設定する

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

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


注 –

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


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

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

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


注 –

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

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


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

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. sendmail を停止します。


    # svcadm disable -t network/smtp:sendmail
    
  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 を再起動します。


    # svcadm enable network/smtp:sendmail
    

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

メールクライアントは、メールサーバー上にメールボックスを持っている、メールサービスのユーザーです。メールクライアントにはさらに、/etc/mail/aliases ファイルで、メールボックスの位置を示すメール別名が設定されています。


注 –

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


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

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. sendmail を停止します。


    # svcadm disable -t network/smtp:sendmail
    
  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 を再起動します。


    # svcadm enable network/smtp:sendmail
    

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

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

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

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. sendmail を停止します。


    # svcadm disable -t network/smtp:sendmail
    
  3. ホスト名の構成を確認します。

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


    % /usr/sbin/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.13.1+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. sendmail を再起動します。


    # svcadm enable network/smtp:sendmail
    
  6. メール構成をテストします。

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


    注 –

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


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

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

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

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

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. sendmail を停止します。


    # svcadm disable -t network/smtp:sendmail
    
  3. ホスト名の構成を確認します。

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


    # /usr/sbin/check-hostname
    hostname phoenix OK: fully qualified as phoenix.example.com

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

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

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


      # ypwhich
      

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

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


      # nisls
      

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

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


      # nslookup hostname
      
      hostname

      ホスト名を指定します。

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

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


      # ldaplist
      

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

  5. sendmail を再起動します。


    # svcadm enable network/smtp:sendmail
    
  6. メール構成をテストします。

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


    注 –

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


Proceduresendmail で DNS を使用する方法

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

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  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) のマニュアルページを参照してください。

sendmail 構成の変更 (作業マップ)

作業 

説明 

参照先 

sendmail 構成ファイルの構築

sendmail.cf ファイルを変更する手順。例としてドメインマスカレードを有効にする方法を取り上げます。

「新しい sendmail.cf ファイルを構築する方法」

仮想ホストの設定 

メールが複数のドメインに受け入れられるように sendmail を設定する手順。 

「仮想ホストを設定する」

sendmail 構成ファイルの自動再構築の設定 

アップグレード後に sendmail.cf および submit.mc 構成ファイルが自動的に再構築されるように sendmail サービスを変更する手順。

「構成ファイルを自動的に再構築する方法」

sendmail のオープンモードでの実行

オープンモードが有効になるように sendmail サービスのプロパティーを変更する手順。 

「オープンモードで sendmail を使用する方法」

Transport Layer Security (TLS) を使用する SMTP の設定 

SMTP を有効にして TLS との接続をセキュリティー保護する手順。 

「TLS を使用するよう SMTP を構成する」

代替構成を使用したメール配信の管理 

マスターデーモンが無効な場合に発生する可能性があるメール配信上の問題を防ぐための手順。 

sendmail.cf の代替構成を使ってメール配信を管理する方法」

sendmail 構成を変更する

「新しい sendmail.cf ファイルを構築する方法」で、構成ファイルの構築方法について説明します。sendmail.cf ファイルの以前のバージョンも引き続き使用できますが、新しい形式を使用することをお薦めします。

詳細は、次を参照してください。

Procedure新しい sendmail.cf ファイルを構築する方法

次に、新しい構成ファイルを構築する手順を示します。


注 –

/usr/lib/mail/cf/main-v7sun.mc は、/etc/mail/cf/cf/sendmail.mc になりました。


  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. sendmail を停止します。


    # svcadm disable -t network/smtp:sendmail
    
  3. 変更しようとする構成ファイルのコピーを作成します。


    # cd /etc/mail/cf/cf
    # cp sendmail.mc myhost.mc
    
    myhost

    .mc ファイルの新しい名前を指定します。

  4. 必要に応じて、新しい構成ファイル (たとえば、myhost.mc) を編集します。

    たとえば、ドメインマスカレードを有効にするには、次のコマンド行を追加します。


    # cat myhost.mc
    ..
    MASQUERADE_AS(`host.domain')
    host.domain

    目的のホスト名とドメイン名を指定します。

    この例では、MASQUERADE_AS は、送信されたメールに、$j ではなく host.domain から送信されたものとしてラベルを付けます。

  5. m4 を使って構成ファイルを構築します。


    # /usr/ccs/bin/make myhost.cf
    
  6. -C オプションを使用して、新しい構成ファイルをテストし、新しいファイルを指定します。


    # /usr/lib/sendmail -C myhost.cf -v testaddr </dev/null
    

    このコマンドはメッセージを表示するとともに、メッセージを testaddr に送信します。システム上で sendmail サービスを再起動せずに、送信メールだけがテストできます。まだメールを処理していないシステムでは、「メール構成をテストする方法」で説明する完全なテスト手順を使用してください。

  7. オリジナルのコピーを作成したあと、新しい構成ファイルをインストールします。


    # cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.save
    # cp myhost.cf /etc/mail/sendmail.cf
    
  8. sendmail サービスを再起動します。


    # svcadm enable network/smtp:sendmail
    

仮想ホストを設定する

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


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

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


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

.cf ファイルの名前を指定します。

「sendmail 構成を変更する」では、構築手順の一部として、これと同じ 3 つの手順を説明しています。

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

Procedure構成ファイルを自動的に再構築する方法

sendmail.cf または submit.cf のコピーを独自に構築済みであれば、アップグレード時に構成ファイルが置き換えられることはありません。次の手順は、sendmail.cf ファイルが自動的に再構築されるように sendmail サービスのプロパティーを構成する方法を示します。submit.cf 構成ファイルを自動的に再構築する方法については、例 13–1 を参照してください。両方のファイルの構築が必要な場合には、これらの手順を組み合わることもできます。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. sendmail プロパティーを設定します。


    # svccfg -s sendmail
    svc:/network/smtp:sendmail> setprop config/path_to_sendmail_mc=/etc/mail/cf/cf/myhost.mc 
    svc:/network/smtp:sendmail> quit
  3. sendmail サービスの再表示と再起動を行います。

    最初のコマンドは、変更を実行中のスナップショット内に転送します。2 番目のコマンドは、新しいオプションを使って sendmail サービスを再起動します。


    # svcadm refresh svc:/network/smtp:sendmail 
    # svcadm restart svc:/network/smtp:sendmail
    

例 13–1 submit.cf の自動再構築を設定する

この手順では、submit.mc 構成ファイルが自動的に再構築されるように sendmail サービスを構成します。


# svccfg -s sendmail-client:default
svc:/network/smtp:sendmail> setprop config/path_to_submit_mc=/etc/mail/cf/cf/submit-myhost.mc 
svc:/network/smtp:sendmail> exit
# svcadm refresh svc:/network/sendmail-client 
# svcadm restart svc:/network/sendmail-client

Procedureオープンモードで sendmail を使用する方法

Solaris 10 リリースでは、sendmail サービスがデフォルトでローカル専用モードで実行するように変更されました。ローカル専用モードとは、ローカルホストからのメールだけが受け入れられることを意味します。その他のシステムからのメッセージはすべて拒否されます。Solaris の以前のリリースは、すべてのリモートシステムからのメールを受け入れるように構成されていました。これはオープンモードとして知られています。オープンモードを使用するには、次の手順に従います。


注意 – 注意 –

ローカル専用モードでの sendmail の実行は、オープンモードでの実行よりもはるかに安全です。潜在的なセキュリティーの問題を確実に認識した上で、この手順を実行してください。


  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. sendmail プロパティーを設定します。


    # svccfg -s sendmail
    svc:/network/smtp:sendmail> setprop config/local_only = false 
    svc:/network/smtp:sendmail> quit
  3. sendmail サービスの再表示と再起動を行います。


    # svcadm refresh svc:/network/smtp:sendmail 
    # svcadm restart svc:/network/smtp:sendmail
    

ProcedureTLS を使用するよう SMTP を構成する

Solaris 10 1/06 以降のリリースでは、SMTP は sendmail の version 8.13 で Transport Layer Security (TLS) を使用できます。SMTP サーバーおよびクライアントに対するこのサービスは、インターネット上での機密性の高い認証された通信だけでなく、盗聴や攻撃からの保護も実現します。このサービスは、デフォルトでは有効になっていないことに注意してください。

次の手順では、サンプルデータを使用して、sendmail が TLS を使用できるようにする証明書を設定する方法を示します。詳細については、sendmail の version 8.13 で TLS を使用して SMTP を実行するためのサポート」を参照してください。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. sendmail を停止します。


    # svcadm disable -t network/smtp:sendmail
    
  3. sendmail が TLS を使用できるようにする証明書を設定します。

    1. 次の手順を行います。


      # cd /etc/mail
      # mkdir -p certs/CA
      # cd certs/CA
      # mkdir certs crl newcerts private
      # echo "01" > serial
      # cp /dev/null index.txt
      # cp /etc/sfw/openssl/openssl.cnf .
      
    2. 任意のテキストエディタを使用して openssl.cnf ファイルの dir の値を /etc/sfw/openssl から /etc/mail/certs/CA に変更します。

    3. openssl コマンド行ツールを使用して TLS を実装します。

      次のコマンド行は対話型テキストを生成することに注意してください。


      # openssl req -new -x509 -keyout private/cakey.pem -out cacert.pem -days 365 \
      -config openssl.cnf
      Generating a 1024 bit RSA private key
      .....................................++++++
      .....................................++++++
      writing new private key to 'private/cakey.pem'
      Enter PEM pass phrase:
      Verifying - Enter PEM pass phrase:
      -----
      You are about to be asked to enter information that will be incorporated
      into your certificate request.
      What you are about to enter is what is called a Distinguished Name or a DN.
      There are quite a few fields but you can leave some blank
      For some fields there will be a default value,
      If you enter '.', the field will be left blank.
      -----
      Country Name (2 letter code) []:US
      State or Province Name (full name) []:California
      Locality Name (eg, city) []:Menlo Park
      Organization Name (eg, company) [Unconfigured OpenSSL Installation]:Sun Microsystems
      Organizational Unit Name (eg, section) []:Solaris
      Common Name (eg, YOUR name) []:somehost.somedomain.example.com
      Email Address []:someuser@example.com
      
      req

      このコマンドは証明書要求を作成し、処理します。

      -new

      この req オプションを選択すると、新しい証明書要求が作成されます。

      -x509

      この req オプションを選択すると、自己署名付き証明書が作成されます。

      -keyout private/cakey.pem

      この req オプションを選択すると、新しく作成された秘密鍵のファイル名として private/cakey.pem を割り当てることができます。

      -out cacert.pem

      この req オプションを選択すると、出力ファイルとして cacert.pem を割り当てることができます。

      -days 365

      この req オプションを選択すると、証明書を 365 日間証明することができます。デフォルト値は 30 です。

      -config openssl.cnf

      この req オプションを選択すると、構成ファイルとして openssl.cnf を指定することができます。

      このコマンドは、次の内容を指定する必要があります。

      • Country Name (US など)。

      • State or Province Name (California など)。

      • Locality Name (Menlo Park など)。

      • Organization Name (Sun Microsystems など)。

      • Organizational Unit Name (Solaris など)。

      • Common Name (マシンの完全指定のホスト名)。詳細は、check-hostname(1M) のマニュアルページを参照してください。

      • Email Address (someuser@example.com など)。

  4. (省略可能) セキュリティー保護された新しい接続が必要である場合、新しい証明書を作成し、認証局を使用して新しい証明書に署名します。

    1. 新しい証明書を作成します。


      # cd /etc/mail/certs/CA
      # openssl req -nodes -new -x509 -keyout newreq.pem -out newreq.pem -days 365 \
      -config openssl.cnf
      Generating a 1024 bit RSA private key
      ..............++++++
      ..............++++++
      writing new private key to 'newreq.pem'
      -----
      You are about to be asked to enter information that will be incorporated
      into your certificate request.
      What you are about to enter is what is called a Distinguished Name or a DN.
      There are quite a few fields but you can leave some blank
      For some fields there will be a default value,
      If you enter '.', the field will be left blank.
      -----
      Country Name (2 letter code) []:US
      State or Province Name (full name) []:California
      Locality Name (eg, city) []:Menlo Park
      Organization Name (eg, company) [Unconfigured OpenSSL Installation]:Sun Microsystems
      Organizational Unit Name (eg, section) []:Solaris
      Common Name (eg, YOUR name) []:somehost.somedomain.example.com
      Email Address []:someuser@example.com
      

      このコマンドでは、手順 3c で指定した情報と同じ情報を指定する必要があります。

      この例では、証明書と秘密鍵はファイル newreq.pem 内にあることに注意してください。

    2. 認証局を使用して新しい証明書に署名します。


      # cd /etc/mail/certs/CA
      # openssl x509 -x509toreq -in newreq.pem -signkey newreq.pem -out tmp.pem
      Getting request Private Key
      Generating certificate request
      # openssl ca -config openssl.cnf -policy policy_anything -out newcert.pem -infiles tmp.pem
      Using configuration from openssl.cnf
      Enter pass phrase for /etc/mail/certs/CA/private/cakey.pem:
      Check that the request matches the signature
      Signature ok
      Certificate Details:
              Serial Number: 1 (0x1)
              Validity
                  Not Before: Jun 23 18:44:38 2005 GMT
                  Not After : Jun 23 18:44:38 2006 GMT
              Subject:
                  countryName               = US
                  stateOrProvinceName       = California
                  localityName              = Menlo Park
                  organizationName          = Sun Microsystems
                  organizationalUnitName    = Solaris
                  commonName                = somehost.somedomain.example.com
                  emailAddress              = someuser@example.com
              X509v3 extensions:
                  X509v3 Basic Constraints: 
                      CA:FALSE
                  Netscape Comment: 
                      OpenSSL Generated Certificate
                  X509v3 Subject Key Identifier: 
                      93:D4:1F:C3:36:50:C5:97:D7:5E:01:E4:E3:4B:5D:0B:1F:96:9C:E2
                  X509v3 Authority Key Identifier: 
                      keyid:99:47:F7:17:CF:52:2A:74:A2:C0:13:38:20:6B:F1:B3:89:84:CC:68
                      DirName:/C=US/ST=California/L=Menlo Park/O=Sun Microsystems/OU=Solaris/\
                      CN=someuser@example.com/emailAddress=someuser@example.com
                      serial:00
      
      Certificate is to be certified until Jun 23 18:44:38 2006 GMT (365 days)
      Sign the certificate? [y/n]:y
      
      
      1 out of 1 certificate requests certified, commit? [y/n]y
      Write out database with 1 new entries
      Data Base Updated
      # rm -f tmp.pem
      

      この例では、ファイル newreq.pem には未署名の証明書と秘密鍵が含まれています。ファイル newcert.pem には署名済みの証明書が含まれています。

      x509 ユーティリティー

      証明書の情報を表示し、証明書をさまざまな形式に変換し、証明書要求に署名します。

      ca アプリケーション

      さまざまな形式の証明書要求の署名と、CRL (Certificate Revocation List) の生成に使用されます。

  5. .mc ファイルに次の行を追加することにより、sendmail が証明書を使用できるようにします。


    define(`confCACERT_PATH', `/etc/mail/certs')dnl
    define(`confCACERT', `/etc/mail/certs/CAcert.pem')dnl
    define(`confSERVER_CERT', `/etc/mail/certs/MYcert.pem')dnl
    define(`confSERVER_KEY', `/etc/mail/certs/MYkey.pem')dnl
    define(`confCLIENT_CERT', `/etc/mail/certs/MYcert.pem')dnl
    define(`confCLIENT_KEY', `/etc/mail/certs/MYkey.pem')dnl
    

    詳細は、「TLS を使用して SMTP を実行するための構成ファイルのオプション」を参照してください。

  6. /etc/mail ディレクトリで sendmail.cf ファイルを再構築し、インストールします。

    手順の詳細は、「sendmail 構成を変更する」を参照してください。

  7. openssl を使用して作成したファイルから、.mc ファイルで定義したファイルへの、シンボリックリンクを作成します。


    # cd /etc/mail/certs
    # ln -s CA/cacert.pem CAcert.pem
    # ln -s CA/newcert.pem MYcert.pem
    # ln -s CA/newreq.pem MYkey.pem
    
  8. セキュリティーを高めるには、MYkey.pem に関して、グループなどに対して読み取り権を許可しないでください。


    # chmod go-r MYkey.pem
    
  9. シンボリックリンクを使用して、confCACERT_PATH に割り当てられているディレクトリで CA 証明書をインストールします。


    # C=CAcert.pem
    # ln -s $C `openssl x509 -noout -hash < $C`.0
    
  10. そのほかのホストとのメールのセキュリティーを保護するには、ホストの証明書をインストールします。

    1. ほかのホストの confCACERT オプションにより定義されたファイルを、/etc/mail/certs/host.domain.cert.pem にコピーします。

      host.domain を、ほかのホストの完全指定のホスト名に置き換えます。

    2. シンボリックリンクを使用して、confCACERT_PATH に割り当てられているディレクトリで CA 証明書をインストールします。


      # C=host.domain.cert.pem
      # ln -s $C `openssl x509 -noout -hash < $C`.0
      

      host.domain を、ほかのホストの完全指定のホスト名に置き換えます。

  11. sendmail を再起動します。


    # svcadm enable network/smtp:sendmail
    

例 13–2 Received: メールヘッダー

次に、TLS を使用したセキュリティー保護されたメールの Received: ヘッダーの例を示します。


Received: from his.example.com ([IPv6:2001:db8:3c4d:15::1a2f:1a2b])
        by her.example.com (8.13.4+Sun/8.13.4) with ESMTP id j2TNUB8i242496
        (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
        for <janepc@her.example.com>; Tue, 29 Mar 2005 15:30:11 -0800 (PST)
Received: from her.example.com (her.city.example.com [192.168.0.0])
        by his.example.com (8.13.4+Sun/8.13.4) with ESMTP id j2TNU7cl571102
        version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
        for <janepc@her.example.com>; Tue, 29 Mar 2005 15:30:07 -0800 (PST)

verify の値が OK である、つまり認証が成功したことに注意してください。詳細は、「TLS を使用して SMTP を実行するためのマクロ」を参照してください。


参照

次の OpenSSL のマニュアルページも参照してください。

Proceduresendmail.cf の代替構成を使ってメール配信を管理する方法

送受信されるメールの転送を容易にするため、sendmail の新しいデフォルトの構成は、デーモンとクライアントキューランナーを使用します。クライアントキューランナーは、ローカルの SMTP ポートのデーモンにメールを送信できなければなりません。デーモンが SMTP ポート上で待機していない場合、メールはキューに留まります。この問題を避けるには、次の作業を行います。デーモンとクライアントキューランナーについての詳細、およびこの代替構成を使用する必要性を理解するには、sendmail の version 8.12 からの submit.cf 構成ファイル」を参照してください。

この手順を実行すると、デーモンは、ローカルホストからの接続を受け付けるためだけに動作するようになります。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. sendmail クライアントサービスを停止します。


    # svcadm disable -t sendmail-client
    
  3. 変更しようとする構成ファイルのコピーを作成します。


    # cd /etc/mail/cf/cf
    # cp submit.mc submit-myhost.mc
    
    myhost

    .mc ファイルの新しい名前を指定します。

  4. 新しい構成ファイル (たとえば、submit- myhost.mc) を編集します。

    待機中のホスト IP アドレスを msp 定義に変更します。


    # grep msp submit-myhost.mc
    FEATURE(`msp', `[#.#.#.#]')dnl
  5. m4 を使って構成ファイルを構築します。


    # /usr/ccs/bin/make submit-myhost.cf
    
  6. オリジナルのコピーを作成したあと、新しい構成ファイルをインストールします。


    # cp /etc/mail/submit.cf /etc/mail/submit.cf.save
    # cp submit-myhost.cf /etc/mail/submit.cf
    
  7. sendmail クライアントサービスを再起動します。


    # svcadm enable sendmail-client
    

メール別名ファイルの管理 (作業マップ)

次の表では、メール別名ファイルの管理の手順を説明します。このトピックの詳細は、「メール別名ファイル」第 14 章メールサービス (リファレンス)を参照してください。

作業 

説明 

参照先 

NIS+ mail_aliases テーブルでの別名のエントリの管理

ネームサービスが NIS+ である場合に、mail_aliases テーブルの内容を管理する手順。

NIS+ mail_aliases テーブルを作成します。

「NIS+ mail_aliases テーブルを作成する方法」

 

NIS+ mail_aliases テーブルの内容を表示します。

この手順には、個々のエントリを表示する方法と部分一致エントリを表示する方法の例が含まれています。 

「NIS+ mail_aliases テーブルの内容を表示する方法」

 

コマンド行から NIS+ mail_aliases テーブルへ別名を追加します。

「コマンド行から NIS+ mail_aliases テーブルへ別名を追加する方法」

 

NIS+ mail_aliases テーブルを編集してエントリを追加します。

「NIS+ mail_aliases テーブルを編集してエントリを追加する方法」

 

NIS+ mail_aliases テーブルでエントリを編集します。

この手順には、エントリを削除する方法の例が含まれています。 

「NIS+ mail_aliases テーブルのエントリを編集する方法」

NIS mail.aliases マップの設定

ネームサービスが NIS の場合に、mail.aliases マップを使って別名を設定する手順。

「NIS mail.aliases マップを設定する方法」

ローカルのメール別名ファイルの設定 

NIS や NIS+ などのネームサービスを使用していない場合に、/etc/mail/aliases ファイルを使って別名を設定する手順。

「ローカルメール別名ファイルを設定する方法」

キー付きマップファイルの作成 

キー付きマップファイルを使って別名を設定する手順。 

「キー付きマップファイルの作成方法」

postmaster 別名の設定

postmaster 別名を管理する手順。この別名は必須です。

postmaster 別名の管理」

メール別名ファイルを管理する

メール別名はドメイン独自にする必要があります。この節では、メール別名ファイルを管理する手順を説明します。また、Solaris 管理コンソールの「メーリングリスト」機能を使って別名データベース上でこれらの作業を実行することもできます。

その他に、makemap を使ってローカルメールホストにデータベースファイルを作成することもできます。makemap(1M) のマニュアルページを参照してください。ローカルのデータベースファイルを使用しても、NIS や NIS+ のようなネームサービスを使用するほどの利点は得られません。しかし、ネットワークのルックアップは必要ないため、ローカルのデータベースファイルからの方がより早くデータを取り出すことができます。詳細は、sendmail とネームサービスの相互作用」「メール別名ファイル」および 第 14 章メールサービス (リファレンス)を参照してください。

次の操作を行うことができます。

ProcedureNIS+ mail_aliases テーブルを作成する方法

aliasadm コマンドを使用して、NIS+ テーブルのエントリを管理することができます。テーブルを作成するには、次の手順に従います。詳細は、aliasadm(1M) のマニュアルページを参照してください。

  1. テーブルを所有する NIS+ グループのメンバーになるか、メールサーバーのスーパーユーザーになるか、同等の役割になります。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. NIS+ テーブルを作成します。


    # aliasadm -I
    
  3. テーブルにエントリを追加します。

ProcedureNIS+ mail_aliases テーブルの内容を表示する方法

テーブルの全内容を表示するには、次の手順に従います。

  1. テーブルを所有する NIS+ グループのメンバーになるか、メールサーバーのスーパーユーザーになるか、同等の役割になります。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 別名のアルファベット順に全エントリを表示します。


    # aliasadm -1
    

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


例 13–3 NIS+ mail_aliases テーブルの個々のエントリを表示する

また、aliasadm コマンドを使用して、個々のエントリを表示することもできます。この手順の最初の手順が完了したら、次のように入力します。


# aliasadm -m ignatz
ignatz: ignatz@saturn # Alias for Iggy Ignatz

このコマンドは、完全に一致する別名のみ表示し、部分的に一致するエントリは表示しません。aliasadm -m オプションでは、メタキャラクタ (*? など) は使用できません。



例 13–4 NIS+ mail_aliases テーブル内の部分一致エントリを表示する

また、aliasadm コマンドを使用して、部分一致エントリを表示することもできます。この手順の最初の手順が完了したら、次のように入力します。


# aliasadm -l | grep partial-string

partial-string は、検索に使用する文字列で置き換えます。


Procedureコマンド行から NIS+ mail_aliases テーブルへ別名を追加する方法

2 つまたは 3 つの別名をテーブルに追加するには、次の手順に従います。多数の別名を追加する場合は、「NIS+ mail_aliases テーブルを編集してエントリを追加する方法」を参照してください。

  1. メールクライアント、メールボックスの場所、およびメールサーバーシステムの名前の各リストをコンパイルします。

  2. テーブルを所有する NIS+ グループのメンバーになるか、メールサーバーのスーパーユーザーになるか、同等の役割になります。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  3. (省略可能) 必要な場合は、NIS+ テーブルを作成します。

    まったく新しい NIS+ mail_aliases テーブルを作成する場合は、最初に NIS+ テーブルを初期設定しなければなりません。テーブルの作成方法については、「NIS+ mail_aliases テーブルを作成する方法」を参照してください。

  4. テーブルに別名を追加します。

    次に、一般的なエントリの例を示します。


    # aliasadm -a iggy iggy.ignatz@saturn "Iggy Ignatz"
    

    上記の例の入力内容を次に説明します。

    -a

    別名を追加するためのオプション

    iggy

    簡略別名

    iggy.ignatz@saturn

    拡張別名

    "Iggy Ignatz"

    引用符で囲んだ別名

  5. 作成したエントリを表示し、エントリに間違いがないことを確認します。


    # aliasadm -m alias
    
    alias

    作成したエントリ

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

ProcedureNIS+ mail_aliases テーブルを編集してエントリを追加する方法

aliasadm コマンドを使用して、NIS+ テーブルのエントリを管理することができます。多数の別名をテーブルに追加するには、次の手順に従います。

  1. メールクライアント、メールボックスの場所、およびメールサーバーシステムの名前の各リストをコンパイルします。

  2. テーブルを所有する NIS+ グループのメンバーになるか、メールサーバーのスーパーユーザーになるか、同等の役割になります。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  3. 別名テーブルを表示して編集します。


    # aliasadm -e
    

    このコマンドは、テーブルを表示し、テーブルの編集を可能にします。使用するエディタは、$EDITOR 環境変数で設定されています。この変数が設定されていない場合、vi がデフォルトのエディタになります。

  4. 次の形式で、1 行に 1 別名ずつ入力します。


    alias: expanded-alias # ["option" # "comments"]
    alias

    この列には、簡略別名を入力します。

    expanded-alias

    この列には、拡張別名を入力します。

    option

    この列は、将来の拡張のために予約されています。

    comments

    この列は、別名など、個々の別名に関するコメントに使用します。

    オプション列をブランクにする場合は、空の引用符 2 つ ("") を入力し、そのあとにコメントを追加します。

    NIS+ mail_aliases テーブルでは、エントリの順序は重要ではありません。aliasadm -l コマンドがリストをソートし、エントリをアルファベット順に表示します。

    詳細は、「メール別名ファイル」および aliasadm(1M) のマニュアルページを参照してください。

ProcedureNIS+ mail_aliases テーブルのエントリを編集する方法

テーブル内のエントリを編集するには、次の手順に従います。

  1. テーブルを所有する NIS+ グループのメンバーになるか、メールサーバーのスーパーユーザーになるか、同等の役割になります。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 別名エントリを表示します。


    # aliasadm -m alias
    

    alias は、割り当てられている別名で置き換えます。

  3. 必要に応じて別名エントリを編集します。


    # aliasadm -c alias expanded-alias [options comments]
    alias

    必要な場合は、別名を編集します。

    expanded-alias

    必要な場合は、拡張別名を編集します。

    options

    必要な場合は、オプションを編集します。

    comments

    必要な場合は、このエントリのコメントを編集します。

    詳細は、aliasadm(1M) のマニュアルページおよび 「メール別名ファイル」を参照してください。

  4. 編集したエントリを表示し、エントリに間違いがないことを確認します。


    # aliasadm -m alias
    

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


例 13–5 NIS+ mail_aliases テーブルからエントリを削除する

テーブルからエントリを削除するには、この手順の最初の手順の完了後、次の構文を入力します。


# aliasadm -d alias

alias は、削除するエントリの別名で置き換えます。


ProcedureNIS mail.aliases マップを設定する方法

次の手順によって、NIS の mail.aliases マップを使って別名の設定を容易に行うことができます。

  1. メールクライアント、メールボックスの場所、およびメールサーバーシステムの名前の各リストをコンパイルします。

  2. NIS マスターサーバーのスーパーユーザーになるか、同等の役割になります。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  3. /etc/mail/aliases ファイルを編集し、次のようなエントリを作成します。

    1. メールクライアントごとにエントリを追加します。


      # cat /etc/mail/aliases
      ..
      alias:expanded-alias
      
      alias

      簡略別名を指定します。

      expanded-alias

      拡張別名 (user@host.domain.com) を指定します。

    2. Postmaster: root エントリがあることを確認します。


      # cat /etc/mail/aliases
      ..
      Postmaster: root
      
    3. root の別名を追加します。ポストマスターとして指定された個人のメールアドレスを使用します。


      # cat /etc/mail/aliases
      ..
      root: user@host.domain.com
      
      user@host.domain.com

      指定されたポストマスターに割り当てられているアドレスを指定します。

  4. NIS マスターサーバーがネームサービスを実行中で、各メールサーバーのホスト名を解釈処理できることを確認します。

  5. /var/yp ディレクトリに移動します。


    # cd /var/yp
    
  6. make コマンドを適用します。


    # make
    

    /etc/hosts および /etc/mail/aliases ファイルの変更は、NIS スレーブシステムに伝達されます。変更は、遅くとも数分後には有効になります。

Procedureローカルメール別名ファイルを設定する方法

ローカルメール別名ファイルで別名を解釈処理するには、次の手順に従います。

  1. ユーザーとメールボックスの場所の各リストをコンパイルします。

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

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  3. /etc/mail/aliases ファイルを編集し、次のようなエントリを作成します。

    1. ユーザーごとにエントリを追加します。


      user1: user2@host.domain
      
      user1

      新しい別名を指定します。

      user2@host.domain

      新しい別名の実際のアドレスを指定します。

    2. Postmaster: root エントリがあることを確認します。


      # cat /etc/mail/aliases
      ..
      Postmaster: root
      
    3. root の別名を追加します。ポストマスターとして指定された個人のメールアドレスを使用します。


      # cat /etc/mail/aliases
      ..
      root: user@host.domain.com
      
      user@host.domain.com

      指定されたポストマスターに割り当てられているアドレスを指定します。

  4. 別名データベースを再構築します。


    # newaliases
    

    /etc/mail/sendmail.cfAliasFile オプションの構成によって、このコマンドがバイナリ形式で、/etc/mail/aliases.db ファイルを 1 つ生成するか、または /etc/mail/aliases.dir/etc/mail/aliases.pag の 1 組のファイルを生成するかが決まります。

  5. 次の手順のどちらかを実行して、生成されたファイルをコピーします。

    1. (省略可能) /etc/mail/aliases/etc/mail/aliases.dir、および /etc/mail/aliases.pag ファイルをほかの各システムにコピーします。

      rcp または rdist コマンドを使用して 3 つのファイルをコピーできます。詳細は、rcp(1) のマニュアルページまたは rdist(1) のマニュアルページを参照してください。また、この目的のためのスクリプトを作成することもできます。

      これらのファイルをコピーしたら、newaliases コマンドをほかの各システムで実行する必要はありません。ただし、メールクライアントを追加または削除するたびにすべての /etc/mail/aliases ファイルを更新する必要があるので注意してください。

    2. (省略可能) /etc/mail/aliases および /etc/mail/aliases.db ファイルをほかの各システムにコピーします。

      rcp または rdist コマンドを使用してこれらのファイルをコピーできます。詳細は、rcp(1) のマニュアルページまたは rdist(1) のマニュアルページを参照してください。また、この目的のためのスクリプトを作成することもできます。

      これらのファイルをコピーしたら、newaliases コマンドをほかの各システムで実行する必要はありません。ただし、メールクライアントを追加または削除するたびにすべての /etc/mail/aliases ファイルを更新する必要があるので注意してください。

Procedureキー付きマップファイルの作成方法

キー付きマップファイルを作成するには、次の手順に従います。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 入力ファイルを作成します。

    エントリには、次の構文を使用できます。


    old-name@newdomain.com   new-name@newdomain.com
    old-name@olddomain.com    error:nouser No such user here
    @olddomain.com          %1@newdomain.com
    
    old_name@newdomain.com

    新たに割り当てたドメインでこれまで割り当てられていたユーザー名を指定します。

    new_name@newdomain.com

    新たに割り当てるアドレスを指定します。

    old_name@olddomain.com

    これまで割り当てられていたドメインでこれまで割り当てられていたユーザー名を指定します。

    olddomain.com

    これまで割り当てられていたドメインを指定します。

    newdomain.com

    新たに割り当てるドメインを指定します。

    1 番目のエントリにより、メールは新しい別名に転送されます。2 番目のエントリにより、不適切な別名が使用された時にメッセージが作成されます。最後のエントリにより、すべての着信メールは olddomain から newdomain へ転送されます。

  3. データベースファイルを作成します。


    # /usr/sbin/makemap maptype newmap < newmap
    
    maptype

    dbmbtreehash などのデータベースタイプを選択します。

    newmap

    入力ファイル名とデータベースファイル名の最初の部分を指定します。dbm データベースタイプを選択すると、データベースファイルは接尾辞に .pag または .dir を使って作成されます。ほかの 2 つのデータベースタイプの場合、ファイル名には .db が付きます。

postmaster 別名の管理

各システムは postmaster メールボックスにメールを送信できなければなりません。 postmaster の NIS または NIS+ 別名を作成できます。あるいは、ローカルの /etc/mail/aliases ファイルそれぞれに別名を作成することもできます。次の手順を参照してください。

Procedureローカルの各 /etc/mail/aliases ファイルに postmaster 別名を作成する方法

postmaster 別名をローカルの各 /etc/mail/aliases ファイルに作成する場合は、次の手順に従います。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. /etc/mail/aliases エントリを表示します。


    # cat /etc/mail/aliases
    # Following alias is required by the mail protocol, RFC 2821
    # Set it to the address of a HUMAN who deals with this system's
    # mail problems.
    Postmaster: root
  3. 各システムの /etc/mail/aliases ファイルを編集します。

    root をポストマスターに指定する個人のメールアドレスに変更します。


    Postmaster: mail-address
    
    mail-address

    ポストマスターとして指定された個人に割り当てられたアドレスを使用します。

  4. (省略可能) ポストマスター用に別のメールボックスを作成します。

    ポストマスターがポストマスターメールと個人メールとを区別するために、別のメールボックスを作成できます。別のメールボックスを作成する場合は、/etc/mail/aliases ファイルを編集するときに、ポストマスターの個人メールアドレスではなくメールボックスアドレスを使用してください。詳細は、postmaster 用に別のメールボックスを作成する方法」を参照してください。

Procedurepostmaster 用に別のメールボックスを作成する方法

postmaster 用に別のメールボックスを作成する場合は、次の手順に従います。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. postmaster として指定された個人のアカウントを作成します。パスワードフィールドにアスタリスク (*) を入力します。

    ユーザーアカウントの追加の詳細については、『Solaris のシステム管理 (基本編)』の第 5 章「ユーザーアカウントとグループの管理 (手順)」を参照してください。

  3. メールが配信されたら、mail プログラムがメールボックス名に読み書きできるようにします。


    # mail -f postmaster
    
    postmaster

    割り当てられているアドレスを指定します。

Procedurepostmaster メールボックスを /etc/mail/aliases ファイルの別名に追加する方法

postmaster メールボックスを /etc/mail/aliases ファイル内の別名に追加する場合は、次の手順に従います。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. root の別名を追加します。ポストマスターとして指定された個人のメールアドレスを使用します。


    # cat /etc/mail/aliases
    ..
    root: user@host.domain.com
    
    user@host.domain.com

    ポストマスターとして指定された個人に割り当てられたアドレスを使用します。

  3. ポストマスターのローカルシステムで、/etc/mail/aliases ファイルに別名の名前を定義するエントリを作成します。sysadmin が 1 例です。ローカルメールボックスへのパスも指定します。


    # cat /etc/mail/aliases
    ..
    sysadmin: /usr/somewhere/somefile
    
    sysadmin

    新しい別名の名前を作成します。

    /usr/somewhere/somefile

    ローカルメールボックスのパスを指定します。

  4. 別名データベースを再構築します。


    # newaliases
    

キューディレクトリの管理 (作業マップ)

次の表では、メールキューの管理の手順を説明します。

作業 

説明 

参照先 

メールキュー /var/spool/mqueue の内容の表示

キューにあるメッセージの数とそれらのメッセージがキューから消去されるのにかかる時間を表示する手順。 

「メールキュー /var/spool/mqueue の内容を表示する方法」

メールキュー /var/spool/mqueue の強制処理

以前にメッセージを受信できなかったシステムへのメッセージを処理する手順。 

「メールキュー /var/spool/mqueue でメールキューを強制処理する方法」

メールキュー /var/spool/mqueue のサブセットの実行

ホスト名など、アドレスの部分文字列を強制的に処理する手順。さらに、特定のメッセージをキューから強制的に処理する手順。 

「メールキュー /var/spool/mqueue のサブセットを実行する方法」

メールキュー /var/spool/mqueue の移動

メールキューを移動する手順。 

「メールキュー /var/spool/mqueue を移動する方法」

古いメールキュー /var/spool/omqueue の実行

古いメールキューを実行する手順。 

「古いメールキュー /var/spool/omqueue を実行する方法」

キューディレクトリの管理

この節では、キューの管理に役立つ作業について説明します。クライアント専用のキューの詳細については、sendmail の version 8.12 からの submit.cf 構成ファイル」を参照してください。ほかの関連情報については、sendmail の version 8.12 から追加されたキューの機能」を参照してください。

次を参照してください。

Procedureメールキュー /var/spool/mqueue の内容を表示する方法

  1. キューにあるメッセージの数とそれらのメッセージがキューから消去されるのにかかる時間を表示します。

    次の行を入力します。


    # /usr/bin/mailq | more
    

    このコマンドは、次の情報を表示します。

    • キュー ID

    • メッセージのサイズ

    • メッセージがキューに入った日付

    • メッセージの状態

    • 送信者と受信者

    さらに、このコマンドは、承認属性 solaris.admin.mail.mailq を確認します。確認が取れると、sendmail-bp フラグを指定するのと同じ処理が実行されます。確認ができない場合は、エラーメッセージが表示されます。デフォルトでは、この承認属性はすべてのユーザーで使用できるようになっています。承認属性は、prof_attr 内のユーザーエントリを変更することにより無効にできます。詳細は、prof_attr(4) および mailq(1) のマニュアルページを参照してください。

Procedureメールキュー /var/spool/mqueue でメールキューを強制処理する方法

たとえば、以前にメッセージを受信できなかったシステムへのメッセージを処理するには、次の手順に従います。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. キューを強制処理し、キューが消去されるとジョブの進捗状況を表示します。


    # /usr/lib/sendmail -q -v 
    

Procedureメールキュー /var/spool/mqueue のサブセットを実行する方法

たとえば、ホスト名など、アドレスの部分文字列を強制的に処理するには、次の手順に従います。また、特定のメッセージをキューから強制的に処理するにも、次の手順に従います。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. -qRstring を使用して、いつでもメールキューのサブセットを実行できます。


    # /usr/lib/sendmail -qRstring
    
    string

    受信者の別名または user@host.domain の部分文字列 (ホスト名など) を指定

    代わりに、-qInnnnn を使ってメールキューのサブセットを実行することもできます。


    # /usr/lib/sendmail -qInnnnn
    
    nnnnn

    キュー ID を指定します。

Procedureメールキュー /var/spool/mqueue を移動する方法

メールキューを移動する場合は、次の手順に従います。

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

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. sendmail デーモンを終了します。


    # svcadm disable network/smtp:sendmail
    

    これで、sendmail はキューディレクトリを処理しなくなります。

  3. /var/spool ディレクトリに移動します。


    # cd /var/spool
    
  4. mqueue ディレクトリとディレクトリ内のすべての内容を omqueue ディレクトリに移動します。次に、mqueue という名前の新しい空のディレクトリを作成します。


    # mv mqueue omqueue; mkdir mqueue
    
  5. ディレクトリのアクセス権を所有者は読み取り/書き込み/実行に、またグループは読み取り/実行に設定します。また、所有者とグループを daemon に設定します。


    # chmod 750 mqueue; chown root:bin mqueue
    
  6. sendmail を起動します。


    # svcadm enable network/smtp:sendmail
    

Procedure古いメールキュー /var/spool/omqueue を実行する方法

古いメールキューを実行するには、次の手順に従います。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 古いメールキューを実行します。


    # /usr/lib/sendmail -oQ/var/spool/omqueue -q
    

    -oQ フラグで、代替キューディレクトリを指定します。-q フラグで、キューのすべてのジョブを実行するように指示します。画面に冗長出力を表示する場合は、-v フラグを使用します。

  3. 空のディレクトリを削除します。


    # rmdir /var/spool/omqueue
    

.forward ファイルの管理 (作業マップ)

次の表では、.forward ファイルを管理するための手順を説明します。詳細は、.forward ファイル」第 14 章メールサービス (リファレンス)を参照してください。

作業 

説明 

参照先 

.forward ファイルを無効にする

たとえば、自動転送を禁止する場合に実行する手順。 

.forward ファイルを無効にする方法」

.forward ファイルの検索パスを変更する

たとえば、すべての .forward ファイルを共通ディレクトリに移動させる場合に実行する手順。

.forward ファイルの検索パスを変更する方法」

/etc/shells を作成し生成する

メールをプログラムまたはファイルに転送するために、ユーザーが .forward ファイルを使用できるようにする手順。

/etc/shells の作成および生成方法」

.forward ファイルを管理する

この節では、.forward ファイルの管理に関する複数の手順を説明します。これらのファイルはユーザーが編集できるので、ファイルが問題の原因になる場合があります。詳細は、.forward ファイル」第 14 章メールサービス (リファレンス)を参照してください。

次を参照してください。

Procedure.forward ファイルを無効にする方法

自動転送を禁止し、特定のホストの .forward ファイルを無効にするには、次の手順に従います。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. /etc/mail/cf/domain/solaris-generic.m4 またはサイト固有のドメイン m4 ファイルのコピーを作成します。


    # cd /etc/mail/cf/domain
    # cp solaris-generic.m4 mydomain.m4
    
    mydomain

    選択するファイル名を指定します。

  3. 次の行を作成したファイルに追加します。


    define(`confFORWARD_PATH',`')dnl
    

    m4 ファイルに confFORWARD_PATH の値がすでに存在する場合は、NULL 値に置き換えます。

  4. 新しい構成ファイルを構築してインストールします。

    この手順の詳細については、「新しい sendmail.cf ファイルを構築する方法」を参照してください。


    注 –

    .mc ファイルを編集する場合は、忘れずに、DOMAIN(`solaris-generic')DOMAIN(`mydomain ') に変更してください。


Procedure.forward ファイルの検索パスを変更する方法

たとえば、すべての .forward ファイルを共通ディレクトリに入れる場合は、次の手順に従います。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. /etc/mail/cf/domain/solaris-generic.m4 またはサイト固有のドメイン m4 ファイルのコピーを作成します。


    # cd /etc/mail/cf/domain
    # cp solaris-generic.m4 mydomain.m4
    
    mydomain

    選択するファイル名を指定します。

  3. 次の行を作成したファイルに追加します。


    define(`confFORWARD_PATH',`$z/.forward:/var/forward/$u')dnl

    m4 ファイルに confFORWARD_PATH の値がすでに存在する場合は、新しい値に置き換えます。

  4. 新しい構成ファイルを構築してインストールします。

    この手順の詳細については、「新しい sendmail.cf ファイルを構築する方法」を参照してください。


    注 –

    .mc ファイルを編集する場合は、忘れずに、DOMAIN(`solaris-generic')DOMAIN(`mydomain ') に変更してください。


Procedure/etc/shells の作成および生成方法

このファイルは標準リリースには含まれていません。.forward ファイルを使用してプログラムまたはファイルにメールを転送することをユーザーに許可する場合は、このファイルを追加する必要があります。grep を使用して、パスワードファイルに一覧表示されたすべてのシェルを特定し、ファイルを手動で作成することができます。これにより、シェルをファイルに入力できます。しかし、次に示す、ダウンロード可能なスクリプトを使用する手順の方が簡単です。

  1. スクリプトをダウンロードします。

    http://www.sendmail.org/vendor/sun/gen-etc-shells.html

  2. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  3. シェルのリストを作成するために、gen-etc-shells を実行します。


    # ./gen-etc-shells.sh > /tmp/shells
    

    このスクリプトでは、getent コマンドを使用して、/etc/nsswitch.conf 内に一覧表示されたパスワードファイルソースに組み込まれたシェルの名前を収集します。

  4. /tmp/shells 内のシェルのリストを調べて編集します。

    選択したエディタを使用し、組み込まないシェルを削除します。

  5. ファイルを /etc/shells に移動します。


    # mv /tmp/shells /etc/shells
    

メールサービスの障害対処とヒント (作業マップ)

次の表では、メールサービスのトラブルシューティング手順とヒントを説明します。

作業 

説明 

参照先 

メール構成のテスト 

sendmail 構成ファイルの変更をテストする手順

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

メール別名の確認 

指定された受信者にメールを配信できるかどうかを確認する手順 

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

ルールセットのテスト 

sendmail ルールセットの入力と戻りを確認する手順

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

ほかのシステムへの接続の確認 

ほかのシステムへの接続を確認するためのヒント 

「ほかのシステムへの接続を調べる方法」

syslogd プログラムを使用したメッセージの記録

エラーメッセージ情報を収集するためのヒント 

「エラーメッセージの記録」

診断情報のその他の情報源の確認 

ほかの情報源から診断情報を取得するためのヒント 

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

メールサービスのトラブルシューティング手順とヒント

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

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

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

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


    # svcadm refresh network/smtp:sendmail
    
  2. 各システムからテストメッセージを送信します。


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

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

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

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

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

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

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

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

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

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

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

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

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

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

次の例は、別名を確認する方法を示します。


% mconnect
connecting to host localhost (127.0.0.1), port 25
connection open
220 your.domain.com ESMTP Sendmail 8.13.6+Sun/8.13.6; Tue, 12 Sep 2004 13:34:13 -0800 (PST)
expn sandy
250 2.1.5 <sandy@phoenix.example.com>
quit
221 2.0.0 your.domain.com closing connection
% 

この例では、mconnect プログラムがローカルホスト上のメールサーバーとの接続を確立し、接続をテストできるようにします。プログラムは対話式で実行されるので、さまざまな診断コマンドを実行できます。詳細は、mconnect(1) のマニュアルページを参照してください。expn sandy のエントリに、展開されたアドレス sandy@phoenix.example.com が示されています。したがって、別名 sandy でメールを配信できることが確認されました。

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

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

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

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


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

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


    > 3,0 mail-sraddress
    
    mail-address

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

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

    Control-D キーを押します。


例 13–6 アドレステストモードの出力

次にアドレステストモードの出力例を示します。


% /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

connecting to host phoenix (172.31.255.255), port 25
connection open
220 phoenix.example.com ESMTP Sendmail 8.13.1+Sun/8.13.1; Sat, 4 Sep 2004 3:52:56 -0700
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 のシステム管理 (上級編)』「システムのメッセージ記録のカスタマイズ」を参照してください。

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

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

エラーメッセージの解釈

この節では、sendmail 関連のエラーメッセージを解釈し対処する方法について説明します。http://www.sendmail.org/faq/ も参照してください。

次のエラーメッセージには、次の種類の情報が含まれます。


451 timeout waiting for input during source

原因:

タイムアウトの可能性があるソース (SMTP 接続など) から読み取るとき、sendmail は、読み込みを開始する前にさまざまな Timeout オプションの値をタイマーに設定します。タイマーが期限切れになる前に読み取りが完了しなかった場合、このメッセージが表示され、読み取りが停止します。通常、この状況は RCPT 時に発生します。メールメッセージはキューに入れられて、あとで配信されます。

対処方法:

このメッセージが頻繁に表示される場合は、/etc/mail/sendmail.cf ファイルの Timeout オプションの値を大きくします。タイマーがすでに大きな値に設定されている場合は、ネットワークの配線や接続などハードウェアの問題点を探します。


550 hostname... Host unknown

原因:

この sendmail のメッセージは、単価記号 (@) のあとのアドレス部分で指定されている受信先のホストマシンが、ドメインネームシステム (DNS) ルックアップ時に見つからなかったことを示します。

対処方法:

nslookup コマンドを使用して、受信先ホストが、そのドメインまたはほかのドメインにあることを確認します。スペルが間違っている可能性があります。あるいは、受信者に連絡して正しいアドレスを確認します。


550 username... User unknown

原因:

この sendmail のメッセージは、単価記号 (@) の前のアドレス部分で指定されている受信者を受信先ホストマシンで検出できなかったことを示します。

対処方法:

電子メールアドレスを確認し、再度送信してみます。スペルが間違っている可能性があります。これで解決しない場合は、受信者に連絡して正しいアドレスを確認します。


554 hostname... Local configuration error

原因:

この sendmail メッセージは通常、ローカルホストがメールを自分宛に送信しようとしていることを示します。

対処方法:

/etc/mail/sendmail.cf ファイル内の $j マクロの値が完全指定ドメイン名になっていることを確認します。

説明:

送信側のシステムが SMTP の HELO コマンドで受信側のシステムに自身のホスト名を示すと、受信側のシステムはそのホスト名を送信者の名前と比較します。これらの名前が同じ場合、受信側のシステムはこのエラーメッセージを発行し、接続を閉じます。HELO コマンドで提供される名前は、$j マクロの値です。

追加情報については、http://www.sendmail.org/faq/section4#4.5 を参照してください。


config error: mail loops back to myself.

原因:

このエラーメッセージが生成されるのは、MX レコードを設定し、ホスト bar をドメイン foo のメール交換局にした場合です。ただし、ホスト bar 自身がドメイン foo のメール交換局であることを認識するように設定されていません。

また、送信側システムと受信側システムの両方が同じドメインとして識別される場合にも、このメッセージを受け取ります。

対処方法:

手順については、http://www.sendmail.org/faq/section4#4.5 を参照してください。


host name configuration error

説明:

これは sendmail の古いメッセージで、「I refuse to talk to myself」というメッセージから置き換えられたもので現在は、「Local configuration error」メッセージに置き換えられています。

対処方法:

次のエラーメッセージの対処方法で説明されている手順に従います。554 hostname... Local configuration error.


user unknown

原因:

メールをユーザー宛てに送信しようとすると、「Username... user unknown」のエラーが表示されます。ユーザーが同じシステム上にいます。

対処方法:

入力した電子メールアドレスに誤字がないか確認します。あるいは、ユーザーが、/etc/mail/aliases またはユーザーの .mailrc ファイルに存在しない電子メールアドレスに別名を割り当てられている可能性があります。また、ユーザー名の大文字も確認してください。できれば、電子メールアドレスは大文字と小文字が区別されないようにします。

追加情報については、http://www.sendmail.org/faq/section4#4.17 を参照してください。

第 14 章 メールサービス (リファレンス)

sendmail プログラムは、メール転送エージェントです。前の章で説明したように、このプログラムは、構成ファイルを使用して、別名処理、転送、ネットワークゲートウェイへの自動ルーティング、柔軟な構成を提供します。Solaris OS では、ほとんどのサイトで使用できる標準構成ファイルが付属しています。第 12 章メールサービス (概要)では、メールサービスのコンポーネントと典型的なメールサービスの構成を紹介しています。第 13 章メールサービス (手順) では、電子メールシステムをセットアップして管理する方法について説明しています。この章では、次のトピックについて説明します。

上記の章で説明されていない内容については、次のマニュアルページを参照してください。

Solaris 版の sendmail

ここでは、次の項目について sendmail の Solaris 版と一般的な Berkeley バージョンを比較します。

sendmail のコンパイルに使用できるフラグと使用できないフラグ

Solaris 10 以降のリリースで sendmail のコンパイルに使用されるフラグは、次のとおりです。構成にほかのフラグが必要な場合は、そのソースをダウンロードし、バイナリにコンパイルし直してください。このプロセスについては、http://www.sendmail.org を参照してください。

表 14–1 一般的な sendmail フラグ

フラグ 

説明 

SOLARIS=21000

Solaris 10 のサポート。 

MILTER

メールフィルタ API のサポート。sendmail の version 8.13 では、このフラグはデフォルトで有効になっています。MILTER (sendmail のメールフィルタ API)」を参照してください。

NETINET6

IPv6 のサポート。このフラグは、conf.h から Makefile に移動されました。

表 14–2 マップとデータベースの種類

フラグ 

説明 

NDBM

ndbm データベースのサポート

NEWDB

Berkeley DB データベースのサポート 

USERDB

ユーザーデータベースのサポート 

NIS

nis データベースのサポート

NISPLUS

nisplus データベースのサポート

LDAPMAP

LDAP のマップのサポート

MAP_REGEX

正規表現のマップのサポート 

表 14–3 Solaris のフラグ

フラグ 

説明 

SUN_EXTENSIONS

sun_compat.o に含まれる Sun の拡張をサポートします。

SUN_INIT_DOMAIN

下位互換性を確保するために、NIS ドメイン名をサポートしてローカルホスト名を完全指定します。詳細は、http://www.sendmail.org のベンダー固有の情報を参照してください。

SUN_SIMPLIFIED_LDAP

Sun 固有の簡略化された LDAP API をサポートします。詳細は、http://www.sendmail.org のベンダー固有の情報を参照してください。

VENDOR_DEFAULT=VENDOR_SUN

Sun をデフォルトのベンダーに選択します。 

次の表に、Solaris 10 に添付されるバージョンの sendmail のコンパイルに使用されない一般的なフラグを示します。

表 14–4 sendmail の Solaris 版に使用されない一般的なフラグ

フラグ 

説明 

SASL

Simple Authentication and Security Layer (RFC 2554) 

STARTTLS

Transaction Level Security (RFC 2487) 

sendmail のコンパイルに使用するフラグのリストを参照するには、次のコマンドを使用します。


% /usr/lib/sendmail -bt -d0.10 < /dev/null

注 –

上記のコマンドでは、Sun 固有のフラグは表示されません。


MILTER (sendmail のメールフィルタ API)

MILTER (sendmail のメールフィルタ API ) によって、サードパーティー製のプログラムが、メタ情報と本文にフィルタをかけるために処理されるときに、メールメッセージにアクセスできるようになります。フィルタを作成する必要や、作成したフィルタを使用するように sendmailを構成する必要はありません。この API は、sendmail の version 8.13 ではデフォルトで有効になっています。

詳細は、次を参照してください。

sendmail の代替コマンド

Solaris リリースには、sendmail.org による汎用リリースで提供されているコマンドの同義語がすべて組み込まれているわけではありません。次の表は、すべてのコマンドの別名を示したリストです。この表には、コマンドが Solaris リリースに組み込まれているかどうか、および sendmail を使って同じ動作を生成する方法も示しています。

表 14–5 代替 sendmail コマンド

代替名 

Solaris への組み込み 

sendmail を使用したオプション

hoststat

いいえ 

sendmail -bh

mailq

はい 

sendmail -bp

newaliases

はい 

sendmail -bi

purgestat

いいえ 

sendmail -bH

smtpd

いいえ 

sendmail -bd

構成ファイルのバージョン

Solaris 10 以降のリリースに含まれている sendmail のバージョンには、sendmail.cf ファイルのバージョンを定義するための構成オプションが含まれます。現在のバージョンの sendmail でも以前のバージョンの構成ファイルを使用できます。バージョンレベルには 0 から 10 の値を設定できます。また、ベンダーの定義もできます。Berkeley または Sun をベンダーとして選択できます。ベンダーを定義しないでバージョンレベルだけを設定した場合は、Sun がデフォルトとして使用されます。次の表に有効なオプションを示します。

表 14–6 構成ファイルのバージョン値

フィールド 

説明 

V7/Sun

sendmail の version 8.8 で使用された設定。

V8/Sun

sendmail の version 8.9 で使用された設定。この設定は、Solaris 8 に含まれていました。

V9/Sun

sendmail の version 8.10 と 8.11 で使用された設定。

V10/Sun

sendmail の version 8.12 と 8.13 で使用される設定。version 8.12 は、Solaris 9 のデフォルトです。Solaris 10 以降のリリースでは、version 8.13 がデフォルトです。


注 –

V1/Sun は使用しないでください。詳細は、http://www.sendmail.org/vendor/sun/differences.html#4 を参照してください。


作業手順については、第 13 章メールサービス (手順)「sendmail 構成を変更する」を参照してください。

メールサービスのソフトウェアとハードウェアのコンポーネント

ここでは、メールシステムのソフトウェアとハードウェアの構成要素について説明します。

ソフトウェアコンポーネント

各メールサービスには、少なくとも次のいずれかのソフトウェアコンポーネントが含まれます。

ここでは、次のソフトウェアコンポーネントについても説明します。

メールユーザーエージェント

「メールユーザーエージェント」は、ユーザーとメール転送エージェント間のインタフェースとして機能するプログラムです。sendmail プログラムは、メール転送エージェントです。Solaris オペレーティングシステムは、次のメールユーザーエージェントを提供します。

メール転送エージェント

「メール転送エージェント」は、メールメッセージのルーティングとメールアドレスの解釈を行います。このエージェントは、「メールトランスポートエージェント」とも呼ばれます。Solaris オペレーティングシステムの転送エージェントは sendmail です。転送エージェントは次の機能を実行します。

ローカル配信エージェント

「ローカル配信エージェント」は、メールの配信プロトコルを実行するプログラムです。Solaris オペレーティングシステムには、次のローカル配信エージェントが提供されています。

sendmail の version 8.12 からの変更点」 では、次の関連項目について説明します。

メールプログラムと sendmail

「メールプログラム」は、sendmail 固有の用語です。「メールプログラム」は sendmail によって使用され、カスタマイズされたローカル配信エージェントまたはカスタマイズされたメール転送エージェントの特定のインスタンスを特定します。sendmail.cf ファイルに少なくとも 1 つのメールプログラムを指定する必要があります。作業手順については、第 13 章メールサービス (手順)「sendmail 構成を変更する」を参照してください。ここでは、2 種類のメールプログラムについて説明します。

メールプログラムの詳細は、http://www.sendmail.org/m4/readme.html または /etc/mail/cf/README を参照してください。

SMTP (Simple Mail Transfer Protocol) メールプログラム

SMTP はインターネットで使用される標準のメールプロトコルです。このプロトコルが、メールプログラムを定義します。

UUCP (UNIX-to-UNIX Copy Program) メールプログラム

UUCP の使用は、できるだけ避けてください。説明については、http://www.sendmail.org/m4/uucp_mailers.html を参照するか、/etc/mail/cf/READMEUSING UUCP MAILERS という文字列を検索してください。

UUCP が、メールプログラムを定義します。

uucp-old

$=U クラスの名前が uucp-old に送られます。suucp は、このメールプログラムの以前の名前です。uucp-old メールプログラムはヘッダーでは感嘆符を用いるアドレスを使用します。

uucp-new

$=Y クラスの名前が uucp-new に送られます。受信側の UUCP メールプログラムが単一の転送で複数の受信者を管理できる場合は、このメールプログラムを使用します。suucp は、このメールプログラムの以前の名前です。uucp-new メールプログラムはヘッダーで感嘆符を用いるアドレスも使用します。

構成に MAILER(smtp) も指定されている場合は、さらに次の 2 つのメールプログラムが定義されます。

uucp-dom

このメールプログラムは、ドメインスタイルアドレスを使用し、基本的に SMTP のリライトルールを適用します。

uucp-uudom

$=Z クラスの名前が uucp-uudom に送られます。uucp-uudomuucp-dom は、ドメインスタイルアドレスという同じヘッダーアドレス書式を使用します。


注 –

smtp メールプログラムは UUCP メールプログラムを変更するので、.mc ファイルの MAILER(uucp) の前に必ず MAILER(smtp) を記述します。


メールアドレス

「メールアドレス」には、受信者の名前と、メールメッセージが配信されるシステムが含まれます。ネームサービスを使用しない小さなメールシステムを管理する場合、メールのアドレス指定は簡単です。つまり、ログイン名がユーザーを一意に識別します。メールボックスを含む複数のシステムで構成されるメールシステム、または 1 つ以上のドメインで構成されるメールシステムを管理する場合は複雑になります。UUCP またはその他のメールシステムによってネットワーク外部のサーバーに接続する場合は、さらに複雑になります。次の節で、メールアドレスの各部とその複雑さを説明しています。

ドメインとサブドメイン

電子メールのアドレス指定には、ドメインが使用されます。「ドメイン」は、ネットワークアドレスの命名のためのディレクトリ構造です。ドメインは 1 つ以上の「サブドメイン」を持つことができます。アドレスのドメインとサブドメインは、ファイルシステムの階層と比較できます。サブディレクトリが上位のディレクトリに含まれるように、メールアドレスの各サブドメインもその右のドメインに含まれると考えられます。

次の表に最上位のドメインを示します。

表 14–7 最上位のドメイン

ドメイン 

説明 

com

企業 

edu

教育機関用 

gov

米国の政府機関 

mil

米国の軍事機関 

net

ネットワーク組織 

org

その他の非営利組織 

ドメインには大文字と小文字の区別がありません。アドレスのドメイン部分には、大文字、小文字、またはその両方を混合したものを、問題なく使用できます。

ネームサービスドメイン名とメールドメイン名

ネームサービスドメイン名とメールドメイン名を操作するときは、次のことに注意します。

詳細は、sendmail とネームサービスの相互作用」を参照してください。

メールアドレスの一般的な書式

一般に、メールアドレスは次のような書式になります。詳細は、「経路に依存しないメールアドレス」を参照してください。


user@subdomain. ... .subdomain2.subdomain1.top-level-domain

アドレスの @ 記号より左の部分はローカルアドレスです。ローカルアドレスには、次の内容を含めることができます。


注 –

受信側のメールプログラムでアドレスのローカル部分を解釈する必要があります。メールプログラムの詳細は、「メールプログラムと sendmailを参照してください。


アドレスの @ 記号より右の部分は、ローカルアドレスが位置するドメインレベルを示します。各サブドメインはドットで区切られます。アドレスのドメイン部分は、組織、物理的な場所、または地域を表すことができます。さらに、ドメイン情報の順序は階層的で、ローカルなサブドメインほど @ 記号に近くなります。

経路に依存しないメールアドレス

メールアドレスは、経路に依存しないアドレス指定ができます。経路に依存しないアドレス指定では、電子メールメッセージの発信者は、受信者の名前と最終の宛先を指定する必要があります。インターネットなどの高速ネットワークでは、経路に依存しないアドレスを使用します。経路に依存しないアドレスは次のような書式になります。


user@host.domain

UUCP 接続の経路に依存しないアドレスは次のような書式になります。


host.domain!user

コンピュータのドメイン階層命名方式が普及したため、経路に依存しないアドレスがより一般的になってきました。実際、次に示すように、もっとも一般的な経路に依存しないアドレスはホスト名を省略し、電子メールメッセージの最終宛先の識別をドメインネームサービスに任せています。


user@domain

経路に依存しないアドレスは、まず @ 記号を検索して読み取られます。次に、ドメイン階層が右 (最上位) から左 (@ 記号の右側にあるもっとも固有な部分) へと読み取られます。

メールボックスファイル

メールボックス」は、電子メールメッセージの最終的な宛先となるファイルです。メールボックス名には、ユーザー名または postmaster などの特定の機能の名前を指定できます。メールボックスは、ユーザーのローカルシステムかリモートのメールサーバーのいずれかの /var/mail/username ファイルにあります。ただし、いずれの場合でも、メールボックスはメールが配信されるシステム上にあります。

ユーザーエージェントがメールスプールからメールを取り出し、ローカルメールボックスに容易に格納できるように、メールは常にローカルファイルシステムに配信される必要があります。ユーザーのメールボックスの宛先として、NFS でマウントされたファイルシステムを使用しないでください。特にリモートサーバーから /var/mail ファイルシステムをマウントしているメールクライアントには、直接メールを送信しないでください。この場合ユーザー宛てのメールは、クライアントのホスト名ではなく、メールサーバーにアドレス指定する必要があります。NFS でマウントされたファイルシステムは、メールの配信と処理に問題を起こすことがあります。

/etc/mail/aliases ファイルと NIS や NIS+ といったネームサービスを利用すると、電子メールアドレスの別名を作成できます。したがって、ユーザーは、個々のユーザーのメールボックスの正確なローカル名を知る必要はありません。

次の表に、特殊な目的のメールボックスに対する共通の命名規則をいくつか示します。

表 14–8 メールボックス名の書式についての規則

表記形式 

説明 

username

多くの場合、ユーザー名はメールボックス名と同じです。 

Firstname.Lastname Firstname_Lastname Firstinitial.Lastname Firstinitial_Lastname

ユーザー名は、ファーストネームとラストネームをドット (または下線) で区切ったフルネーム。または、ファーストネームをイニシャルにして、イニシャルとラストネームをドット (または下線) で区切ったもの。 

postmaster

ユーザーは、postmaster のメールボックスに質問を送ったり、問題点を報告したりできます。通常は各サイトとドメインに postmaster メールボックスがあります。

MAILER-DAEMON

sendmail は、MAILER-DAEMON 宛てのメールを自動的にポストマスターに送ります。

aliasname-request

-request で終わる名前は、配布リストの管理アドレス。このアドレスは、配布リストを管理する人にメールをリダイレクトします。

owner-aliasname

owner- で始まる名前は、配布リストの管理アドレス。このアドレスは、メールエラーを処理する人にメールをリダイレクトします。

owner-owner

この別名は、エラーを戻す先の owner-aliasname の別名がない場合に使用されます。このアドレスは、メールエラーを処理する人にメールをリダイレクトします。このアドレスは、大量の別名を管理する任意のシステムで定義されます。

local%domain

パーセント記号 (%) は、メッセージがその宛先に着くと展開されるローカルアドレスを示します。ほとんどのメールシステムは、% 記号つきのメールボックス名を全メールアドレスとして翻訳します。%@ と置き換えられ、メールはそれに応じてリダイレクトされます。多くの人が % を使用しますが、これは正式な標準ではありません。この規則は、電子メールの世界では「パーセントハック」と呼ばれています。この機能は、メールに問題が起こった場合にデバッグに使用されることが多いです。

sendmail version 8 より、所有者の別名が存在する場合、グループの別名に送信されるメールの封筒の送信者は、所有者の別名から展開されるアドレスに変更されました。この変更によって、メールエラーは、送信者に返送されるのではなく、別名の所有者に送信されるようになりました。この変更によって、別名に送信されたメールは、別名の所有者から送信されたように見えます。次の別名の書式は、この変更に関連したいくつかの問題に対応します。


mygroup: :include:/pathname/mygroup.list
owner-mygroup: mygroup-request
mygroup-request: sandys, ignatz

この例では、mygroup の別名が、このグループの実際のメール別名です。owner-mygroup の別名は、エラーメッセージを受信します。mygroup-request の別名は、管理の要求に使用してください。この構造は、mygroup の別名に送信されたメールでは、封筒の送信者が mygroup-request に変更されることを意味します。

メール別名

「別名 (alias) 」とは、もう 1 つの別の名前を指します。電子メールでは、メールボックスの場所を割り当てたり、メールリストを定義したりするために別名を使用できます。作業マップについては、第 13 章メールサービス (手順)「メール別名ファイルの管理 (作業マップ)」を参照してください。この章の 「メール別名ファイル」も参照してください。

大きなサイトでは通常、メール別名は、メールボックスの場所を定義します。メール別名を提供することは、複数の部屋を占有する大きな会社の個人のアドレスに部屋番号を含めるようなものです。部屋番号を提供しない場合は、メールは中央アドレスに配信されます。部屋番号がなければ、ビルの内部のどこにメールを配信するかを特定するために余分な労力が必要になります。そして、誤りが発生する可能性も増加します。たとえば、同じ建物に Kevin Smith という名前の人が 2 人いる場合、一方だけがメールを受け取ることになる可能性があります。この問題を解決するには、それぞれの Kevin Smith のアドレスに部屋番号を追加する必要があります。

メールリストを作成するときは、なるべくドメインの場所に依存しないアドレスを使用してください。別名ファイルの移植性と柔軟性を高めるため、別名エントリをできるかぎり一般的でシステムに依存しない形式にしてください。たとえば、システム mars のドメイン example.comignatz というユーザー名がある場合、別名は ignatz@mars ではなく、ignatz@example としてください。ユーザー ignatz がシステム名を変更しても、example ドメインには存在し続ける場合、システム名の変更を反映するように別名ファイルを更新する必要はありません。

別名エントリを作成するときは、1 行ごとに 1 つの別名を入力します。ユーザーのシステム名を含むエントリは 1 つだけにしてください。たとえば、ユーザー ignatz には、次のエントリを作成できます。


ignatz: iggy.ignatz
iggyi: iggy.ignatz
iggy.ignatz: ignatz@mars

ローカル名やドメインに別名を作成できます。たとえば、システム mars にメールボックスがある、ドメイン planets 内のユーザー fred の別名エントリでは、NIS+ 別名テーブルに次のエントリを作成できます。


fred: fred@planets

ドメイン外のユーザーを含むメールリストを作成するときは、ユーザー名とドメイン名を持つ別名を作成してください。たとえば、example.com ドメインの privet システムに smallberries というユーザーが存在する場合は、smallberries@example.com という別名を作成します。送信者の電子メールアドレスは、メールがユーザードメイン外に発信されるときは、完全指定ドメイン名に自動的に変換されます。

次に、メール別名のファイルを作成して管理する方法を示します。

ハードウェアコンポーネント

メールの構成に必要な 3 つの要素は、単一のシステムによって提供することも別々のシステムによって提供することもできます。

ユーザーがドメイン外のネットワークと通信をするためには、4 番目の要素であるメールゲートウェイを追加する必要があります。詳細は、「メールゲートウェイ」を参照してください。次の節では各ハードウェアコンポーネントについて説明しています。

メールホスト

メールホスト」は、ネットワークのメインのメールマシンに指定するマシンです。メールホストはサイトにおいて、ほかのシステムでは配信できないメールを転送するためのマシンになります。hosts データベースにシステムをメールホストとして指定するには、ローカル /etc/hosts ファイルの IP アドレスの右に mailhost を追加します。または、ネームサービスのホストファイルに mailhost を同じように追加することもできます。作業手順については、「メールホストを設定する方法」第 13 章メールサービス (手順)を参照してください。

メールホストの候補は、ネットワークからグローバルなインターネットネットワークへのルーターとして構成されたシステムです。詳細は、第 15 章Solaris PPP 4.0 (概要)第 24 章UUCP (概要)、および『Solaris のシステム管理 (IP サービス)』「IPv4 ルーターの構成」を参照してください。ローカルネットワークのどのシステムにもモデムがない場合は、システムの 1 つをメールホストに指定します。

サイトの中には、タイムシェアリング構成でネットワークに接続されていないスタンドアロンのマシンを使用するものがあります。具体的に言うと、スタンドアロンのマシンが、シリアルポートに接続された端末として機能する場合です。このような構成では、スタンドアロンのシステムをシングルシステムネットワークのメールホストに指定することで、電子メールを設定できます。「ハードウェアコンポーネントの概要」第 12 章メールサービス (概要)に、典型的な電子メール構成を示す図があります。

メールサーバー

メールボックス」は、特定のユーザーの電子メールを含む単一のファイルです。メールは、ローカルマシンまたはリモートサーバーのユーザーのメールボックスが存在するシステムに配信されます。「メールサーバー」は、/var/mail ディレクトリにユーザーのメールボックスを保持しているいずれかのシステムになります。作業手順については、「メールサーバーを設定する方法」第 13 章メールサービス (手順)を参照してください。

メールサーバーはクライアントからすべてのメールをルーティングします。クライアントがメールを送信すると、メールサーバーは配信のためにそのメールをキューに入れます。メールがキューに入れられたら、ユーザーはこれらのメールメッセージを失わずに、クライアントをリブートしたり、電源を切ったりすることができます。受信者がクライアントからメールを受け取ると、メッセージの From 行のパスには、メールサーバー名が含まれます。受信者が応答すると、その応答はユーザーのメールボックスに送られます。メールサーバーとして適しているのは、ユーザーにホームディレクトリを提供するシステムか、定期的にバックアップされるシステムです。

メールサーバーがユーザーのローカルシステムでない場合、構成内で NFS ソフト ウェアを使用するユーザーは、root アクセスがあれば、/etc/vfstab ファイルを使用することによって、/var/mail ディレクトリをマウントできます。それ以外の場合は、オートマウンタを使用できます。NFS サポートが利用できない場合、ユーザーはサーバーにログインしてメールを読み込めます。

ネットワーク上のユーザーが、オーディオファイル、DTP システムからのファイルなどほかの形式のファイルを送信する場合は、メールボックスのメールサーバーには、さらに多くの領域を割り当てる必要があります。

全メールボックス用に 1 台のメールサーバーを設定すると、バックアップ作業が簡単になります。メールが多くのシステムに分散しているとバックアップ作業が困難になる場合があります。1 台のサーバーに多くのメールボックスを保存する場合の短所は、サーバーに障害が発生した場合に多くのユーザーが影響を受けることです。ただし、十分なバックアップ機能を提供すれば、1 台のサーバーを採用する価値があります。

メールクライアント

「メールクライアント」は、メールサーバー上にメールボックスを持っている、メールサービスのユーザーです。メールクライアントにはさらに、/etc/mail/aliases ファイルで、メールボックスの位置を示すメール別名が設定されています。作業手順については、「メールクライアントを設定する方法」第 13 章メールサービス (手順)を参照してください。

メールゲートウェイ

「メールゲートウェイ」は、異なる通信プロトコルを実行するネットワーク間の接続を処理したり、同じプロトコルを使用する異なるネットワーク間の通信を処理するマシンです。たとえば、メールゲートウェイでは、SNA (Systems Network Architecture) プロトコルセットを実行するネットワークに、TCP/IP ネットワークを接続する場合もあります。

設定のもっとも簡単なメールゲートウェイは、同じプロトコルかメールプログラムを使用する 2 つのネットワークを接続するものです。このシステムでは、sendmail がドメインで受信者を見つけられないアドレスのあるメールを処理します。メールゲートウェイがある場合、sendmail はメールゲートウェイを使用して、ドメイン外でメールの送受信を行います。

2 つのネットワーク間には、次の図に示すように内容の異なるメールプログラムを使ってメールゲートウェイを設定できます。この構成をサポートするには、メールゲートウェイシステムで sendmail.cf ファイルをカスタマイズする必要がありますが、これは困難で時間のかかる作業になる場合もあります。

図 14–1 異なる通信プロトコル間のゲートウェイ

この図は、異なるメールプログラムを使用する 2 つのメールゲートウェイを示しています。

インターネットに接続できるマシンがある場合は、そのマシンをメールゲートウェイとして構成できます。メールゲートウェイを構成するときは、まずサイトのセキュリティー要件を慎重に考慮する必要があります。社内ネットワークをほかのネットワークと接続するには、ファイアウォールゲートウェイを構築し、それをメールゲートウェイとして設定しなければならない場合があります。作業手順については、「メールゲートウェイを設定する方法」第 13 章メールサービス (手順)を参照してください。

メールサービスのプログラムとファイル

メールサービスには、相互に対応する数多くのプログラムやデーモンが含まれています。ここでは、電子メールの管理に関連するファイル、プログラム、用語、および概念について説明します。

vacation ユーティリティーの拡張機能

Solaris 10 以降のリリースでは、vacation ユーティリティーが機能強化され、自動生成された応答をどの着信メッセージが受けるかをユーザーが指定できるようになりました。この拡張機能により、ユーザーは、知らない人と機密情報や連絡先を共有せずにすみます。スパマーや知らない人からのメッセージは、応答を受け取りません。

この拡張機能は、着信電子メールの送信者のアドレスを .vacation.filter ファイル内のドメインまたは電子メールアドレスのリストと付き合わせることによって機能します。このファイルは、ユーザーによって作成され、ユーザーのホームディレクトリにあります。ドメインまたは電子メールアドレスで一致するものがあると、応答が送られます。一致するものがなければ、応答は送られません。

.vacation.filter には、次のようなエントリが含まれます。


company.com
mydomain.com
onefriend@hisisp.com
anotherfriend@herisp.com

各行には、1 つのドメインまたは 1 つの電子メールアドレスが含まれます。1 つのエントリを 1 行に入力する必要があります。送信者の電子メールアドレスが電子メールアドレスエントリと一致するには、大文字と小文字の違いを除いて、完全に一致している必要があります。送信者のアドレスの文字が小文字であるか大文字であるかは無視されます。送信者の電子メールアドレスがドメインエントリと一致するには、一覧表示されているドメインに送信者のアドレスが含まれている必要があります。たとえば、somebody@dept.company.comsomeone@company.com の両方が、company.com のドメインエントリと一致します。

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

/usr/bin ディレクトリの内容

次の表にメールサービスに使用する /usr/bin ディレクトリの内容を示します。

名前 

種類 

説明 

aliasadm

ファイル 

NIS+ 別名マップを処理するプログラム。 

mail

ファイル 

ユーザーエージェント。 

mailcompat

ファイル 

メールを SunOS 4.1 メールボックスフォーマットに格納するフィルタ。 

mailq

ファイル 

メールキューの内容を一覧表示するプログラム。 

mailstats

ファイル 

/etc/mail/statistics ファイルに格納されたメール統計情報の読み込みに使用するプログラム (存在する場合のみ)。

mailx

ファイル 

ユーザーエージェント。 

mconnect

ファイル 

アドレスの検証とデバッグのためメールプログラムに接続するプログラム。 

praliases

ファイル 

別名データベースを「ソースに展開」するコマンド。praliases(1) のマニュアルページにあるソース展開の情報を参照してください。

rmail

シンボリックリンク 

/usr/bin/mail へのシンボリックリンク。メール送信だけに使用されるコマンド。

vacation

ファイル 

メールへの自動応答を設定するコマンド。 

/etc/mail ディレクトリの内容

次の表に、/etc/mail ディレクトリの内容を示します。

名前 

種類 

説明 

Mail.rc

ファイル 

mailx ユーザーエージェントのデフォルトの設定値。

aliases

ファイル 

メール転送情報。 

aliases.db

ファイル 

newaliases の実行によって作成されるデフォルトのバイナリ形式のメール転送情報。

aliases.dir

ファイル 

newaliases の実行によって作成されるバイナリ形式のメール転送情報。まだ使用できますが、Solaris 9 よりデフォルトでは使用できません。

aliases.pag

ファイル 

newaliases の実行によって作成されるバイナリ形式のメール転送情報。まだ使用できますが、Solaris 9 よりデフォルトでは使用できません。

mailx.rc

ファイル 

mailx ユーザーエージェントのデフォルトの設定値。

main.cf

シンボリックリンク 

メインシステム用の構成ファイルのこの例から sendmail.cf へのシンボリックリンクが、下位互換性を確保するために提供されます。このファイルは、sendmail の version 8.13 では必要ありません。

relay-domains

ファイル 

リレーを許容するすべてのドメインのリスト。デフォルトでは、ローカルドメインだけが使用できます。 

sendmail.cf

ファイル 

メールルーティング用の構成ファイル。 

submit.cf

ファイル 

メール配信プログラム (MSP) のための新しい構成ファイル。詳細は、sendmail の version 8.12 からの submit.cf 構成ファイル」を参照してください。

local-host-names

ファイル 

メールホスト用の別名の数が多すぎるときに作成可能なオプションファイル。 

helpfile

ファイル 

SMTP HELP コマンドで使用するヘルプファイル。

sendmail.pid

ファイル 

リスニングデーモンの PID を一覧表示し、現在は /var/run にあるファイル。

statistics

ファイル 

sendmail 統計ファイル。このファイルが存在すると、sendmail は各メールプログラムのトラフィック量をログに記録します。このファイルは以前 sendmail.st と呼ばれていました。

subsidiary.cf

シンボリックリンク 

サブシステム用の構成ファイルのこの例から sendmail.cf へのシンボリックリンクが、下位互換性を確保するために提供されます。このファイルは、sendmail の version 8.13 では必要ありません。

trusted-users

ファイル 

特定のメール操作を実行するための信頼を与えられたユーザーを一覧表示するファイル (各行 1 ユーザー)。デフォルトでは、root だけがこのファイルに入っています。信頼されていないユーザーが特定のメール操作を実行すると、X-Authentication-Warning: header being added to a message という警告が生成されます。

/etc/mail/cf ディレクトリの内容

/etc/mail ディレクトリには、sendmail.cf ファイルを構築するために必要なすべてのファイルを含む cf というサブディレクトリがあります。表 14–9cf ディレクトリの内容を示します。

Solaris 10 以降のリリースでは、読み取り専用の /usr ファイルシステムをサポートするために、/usr/lib/mail ディレクトリの内容が /etc/mail/cf ディレクトリに移動されました。ただし、例外があります。シェルスクリプト /usr/lib/mail/sh/check-hostname および /usr/lib/mail/sh/check-permissions は、/usr/sbin ディレクトリに置かれるようになりました。「メールサービスに使用するその他のファイル」を参照してください。下位互換性を確保するために、シンボリックリンクが各ファイルの新しい位置を示します。

表 14–9 メールサービスに利用する /etc/mail/cf ディレクトリの内容

名前 

種類 

説明 

README

ファイル 

構成ファイルを説明します。 

cf/main.cf

シンボリックリンク 

Solaris 10 リリース以降、このファイル名は cf/sendmail.cf にリンクされます。このファイルはメインの構成ファイルとして使用されます。

cf/main.mc

シンボリックリンク 

Solaris 10 リリース以降、このファイル名は cf/sendmail.mc にリンクされます。このファイルは、メインの構成ファイルを作成するためのファイルでした。

cf/Makefile

ファイル 

新しい構成ファイルを作成する場合の規則を提供します。 

cf/submit.cf

ファイル 

メッセージを送信するためのメール配信プログラム (MSP) のための構成ファイルです。 

cf/submit.mc

ファイル 

submit.cf ファイルの構築に使用されるファイルです。このファイルは、メール配信プログラム (MSP) のための m4 マクロを定義します。

cf/sendmail.cf

ファイル 

sendmail のためのメインの構成ファイルです。 

cf/sendmail.mc

ファイル 

sendmail.cf ファイルの生成に使用される m4 マクロが含まれています。

cf/subsidiary.cf

シンボリックリンク 

Solaris 10 リリース以降、このファイル名は cf/sendmail.cf にリンクされます。別のホストから /var/mail を NFS マウントするホストのための構成ファイルとして使用されます。

cf/subsidiary.mc

シンボリックリンク 

Solaris 10 リリース以降、このファイル名は cf/sendmail.mc にリンクされます。このファイルには、subsidiary.cf ファイルの生成に使用された m4 マクロが含まれています。

domain

ディレクトリ 

サイトに依存するサブドメインの説明を提供します。 

domain/generic.m4

ファイル 

Berkeley Software Distribution からの汎用ドメインファイルです。 

domain/solaris-antispam.m4

ファイル 

sendmail 関数を以前の Solaris 版の sendmail のようにする変更を伴うドメインファイルです。ただし、リレーは完全に無効に設定されるので、ホスト名のない送信者アドレスは拒否され、解決されないドメインは拒否されます。

domain/solaris-generic.m4

ファイル 

sendmail 関数を以前の Solaris 版の sendmail のようにする変更を伴うデフォルトのドメインファイルです。

feature

ディレクトリ 

特定のホスト用の特別な機能の定義を含みます。機能の詳細な説明は README を参照してください。

m4

ディレクトリ 

サイトに依存しないインクルードファイルを含みます。 

mailer

ディレクトリ 

localsmtpuucp などのメールプログラムの定義を含みます。

main-v7sun.mc

ファイル 

廃止: Solaris 10 リリース以降、このファイル名は cf/sendmail.mc に変更されました。

ostype

ディレクトリ 

各種のオペレーティングシステム環境を説明します。 

ostype/solaris2.m4

ファイル 

デフォルトのローカルメールプログラムを mail.local に定義します。

ostype/solaris2.ml.m4

ファイル 

デフォルトのローカルメールプログラムを mail.local に定義します。

ostype/solaris2.pre5.m4

ファイル 

ローカルメールプログラムを mail に定義します。

ostype/solaris8.m4

ファイル 

ローカルメールプログラムを LMTP モードで mail.local に定義し、IPv6 を有効にし、sendmail.pid ファイルのディレクトリとして /var/run を指定します。

subsidiary-v7sun.mc

ファイル 

廃止: Solaris 10 リリース以降、このファイル名は cf/sendmail.mc に変更されました。

/usr/lib ディレクトリの内容

次の表にメールサービスに使用する /usr/lib ディレクトリの内容を示します。

表 14–10 /usr/lib ディレクトリの内容

名前 

種類 

説明 

mail.local

ファイル 

メールボックスにメールを配信するメールプログラム。 

sendmail

ファイル 

メール転送エージェントとしても知られるルーティングプログラム。 

smrsh

ファイル 

sendmail|program 構文を使用して /var/adm/sm.bin ディレクトリにあるプログラムに対して sendmail を実行できるプログラムを制限するシェルプログラム (sendmail に限定されたシェル)。/var/adm/sm.bin に含める内容については、smrsh(1M) のマニュアルページを参照してください。有効にするには、この m4 コマンドと FEATURE(`smrsh') を mc ファイルに含めます。

mail

シンボリックリンク 

シンボリックリンクは /etc/mail/cf ディレクトリを示します。詳細は、/etc/mail/cf ディレクトリの内容」を参照してください。

メールサービスに使用するその他のファイル

メールサービスは、その他のいくつかのファイルおよびディレクトリを使用します。これらを表 14–11 に示します。

表 14–11 メールサービスに使用するその他のファイル

名前 

種類 

説明 

/etc/default/sendmail

ファイル 

sendmail の起動スクリプトの環境変数を一覧表示します。

/etc/shells

ファイル 

有効なログインシェルを一覧表示します。 

/etc/mail/cf/sh

ディレクトリ 

m4 構築プロセスと移行補助に使用するシェルスクリプトを含みます。

/usr/sbin/check-permissions

ファイル 

:include: 別名と .forward ファイルのアクセス権、および正確なアクセス権に必要なこれらの親ディレクトリのパスを確認します。

/usr/sbin/check-hostname

ファイル 

sendmail が完全指定のホスト名を判別できることを確認します。

/usr/sbin/editmap

ファイル 

sendmail のデータベースマップの単一のレコードに対してクエリーを実行して編集します。

/usr/sbin/in.comsat

ファイル 

メール通知デーモン。 

/usr/sbin/makemap

ファイル 

入力されたマップのバイナリ形式を構築します。 

/usr/sbin/newaliases

シンボリックリンク 

/usr/lib/sendmail へのシンボリックリンク。別名データベースのバイナリ形式を作成するために使用します。以前は /usr/bin にありました。

/usr/sbin/syslogd

ファイル 

sendmail が使用するエラーメッセージログをとるデーモン。

/usr/sbin/etrn

ファイル 

クライアント側リモートメールキューを起動するための Perl スクリプト。 

/usr/dt/bin/dtmail

ファイル 

CDE メールユーザーエージェント。 

/var/mail/mailbox1 /var/mail/mailbox2

ファイル 

配信されたメールのメールボックス。 

/var/spool/clientmqueue

ディレクトリ 

クライアントデーモンによって配信されるメールの記憶領域。 

/var/spool/mqueue

ディレクトリ 

マスターデーモンによって配信されるメールの記憶領域。 

/var/run/sendmail.pid

ファイル 

リスニングデーモンの PID を表示するファイル。 

メールプログラム間の相互作用

メールサービスは次のプログラムで構成され、図 14–2 のように作用します。

図 14–2 メールプログラム間の相互作用

図については本文で説明します。

次に、メールプログラムの相互作用について説明します。

  1. ユーザーは、mailx などのプログラムを使ってメッセージを送信します。詳細は、mailx(1) のマニュアルページを参照してください。

  2. メッセージは、そのメッセージを生成したプログラムによって収集され、sendmail デーモンに渡されます。

  3. sendmail デーモンがメッセージのアドレスを識別可能な各部に分割して解析します。sendmail デーモンは、/etc/mail/sendmail.cf という構成ファイルの情報を使ってネットワーク名の構文、別名、転送情報、およびネットワークトポロジを決定します。sendmail はこの情報を使用して、メッセージが受信者に到達する経路を決定します。

  4. sendmail デーモンはメッセージを適切なシステムに渡します。

  5. ローカルシステムの /usr/lib/mail.local プログラムは、メッセージの受信者の /var/mail/username ディレクトリのメールボックスにメールを配信します。

  6. 受信者は、メールが届いたことが通知されるので、mailmailx などのプログラムを使用してメールを受け取ります。

sendmail プログラム

次に、sendmail プログラムの機能の一部を示します。

Solaris オペレーティングシステムでは、sendmail プログラムをメールルーターとして使用します。次に、機能の一部を示します。

sendmail の詳細は、次のトピックを参照してください。

sendmail とその再ルーティングメカニズム

sendmail プログラムでは、メールルーティングに必要な 3 つのメカニズムをサポートしています。適切なメカニズムは、変更の種類によって決まります。

さらに、選択する再ルーティングメカニズムによって必要な管理レベルが異なります。次のオプションを考慮してください。

  1. 再ルーティングメカニズムの 1 つは「別名」です。

    別名を使用すれば、使用するファイルの種類に基づいて、サーバー全体またはネームサービス全体をベースにしてアドレス名をマップできます。

    次に、ネームサービスの別名の長所と短所を示します。

    • ネームサービス別名ファイルを使用すれば、メール再ルーティングの変更を単一のソースで管理できます。ただし、ネームサービスの別名指定では、再ルーティングの変更を伝達する際に遅延が起こります。

    • 通常、ネームサービスの管理は、特定のシステム管理者グループに制限されます。一般ユーザーは、このファイルを管理しません。

    次に、サーバー別名ファイルを使用する際の長所と短所を示します。

    • サーバー別名ファイルを使用すれば、指定されたサーバーの root になることができる任意のユーザーが再ルーティングを管理できます。

    • サーバー別名指定は、再ルーティングの変更を伝達する際の遅延はほとんどありません。

    • 変更はローカルサーバーだけに影響します。ほとんどのメールが単一のサーバーに送信される場合は、影響が少なくなります。ただし、この変更を多くのメールサーバーに伝達する必要がある場合は、ネームサービスの別名指定を使用します。

    • 一般ユーザーは、この変更を管理しません。

    詳細は、この章の 「メール別名ファイル」を参照してください。作業マップについては、第 13 章メールサービス (手順)「メール別名ファイルの管理 (作業マップ)」を参照してください。

  2. 次のメカニズムは、「転送」です。

    このメカニズムでは、ユーザーがメールの再ルーティングを管理できます。ローカルユーザーは、受信メールを次の対象に再ルーティングできます。

    • 別のメールボックス

    • 別のメールプログラム

    • 別のメールホスト

    このメカニズムは、.forward ファイルによってサポートされます。.forward ファイルの詳細は、この章の .forward ファイル」を参照してください。作業マップについては、.forward ファイルの管理 (作業マップ)」第 13 章メールサービス (手順)を参照してください。

  3. 最後のメカニズムは、「取り込み」です。

    このメカニズムでは、root アクセス権を持たないユーザーも別名リストを保守できます。このメカニズムを提供するには、root ユーザーは、サーバー上の別名ファイル内に適切なエントリを作成する必要があります。このエントリが作成されると、ユーザーは必要に応じてメールをルーティングし直すことができるようになります。取り込みの詳細は、この章の /etc/mail/aliases ファイル」を参照してください。作業マップについては、第 13 章メールサービス (手順)「メール別名ファイルの管理 (作業マップ)」を参照してください。


    注 –

    /usr/bin/mailx のようなメールを読み取るプログラムは、プログラム自身の別名を持つことができ、それらはメッセージが sendmail に達する前に展開されます。sendmail の別名は、ローカルファイル、NIS、NIS+ など、さまざまなネームサービスソースからのものでもかまいません。検索順序は nsswitch.conf ファイルによって決定されます。nsswitch.conf(4) のマニュアルページを参照してください。


sendmail プログラムの機能

sendmail プログラムには、次のような機能があります。

sendmail 構成ファイル

「構成ファイル」は、sendmail がその機能を実行する方法を制御します。構成ファイルにより、配信エージェント、アドレスの変換の規則、およびメールヘッダーのフォーマットが選択されます。sendmail プログラムは、/etc/mail/sendmail.cf ファイルの情報を使用して、その機能を実行します。

Solaris オペレーティングシステムには、/etc/mail ディレクトリに次の 2 つのデフォルト構成ファイルがあります。

  1. デーモンモードで sendmail を実行するために使用する sendmail.cf 構成ファイル。

  2. デーモンモードの代わりにメール配信プログラムモードで sendmailを実行するために使用する submit.cf 構成ファイル。詳細は、sendmail の version 8.12 からの submit.cf 構成ファイル」を参照してください。

メールクライアント、メールサーバー、メールホスト、メールゲートウェイを設定するときは、次を考慮してください。

次に、サイトの要求に応じて変更が可能な構成パラメータをいくつか説明します。

メール別名ファイル

別名を保守するには、次のファイル、マップ、またはテーブルを使用します。

別名を保守する方法は、だれが使用し、だれが変更するかによって決まります。別名のタイプにはそれぞれ固有の形式要件があります。

関連する作業については、「メール別名ファイルの管理 (作業マップ)」第 13 章メールサービス (手順)を参照してください。

.mailrc の別名

.mailrc ファイルのリストに入っている別名には、ファイルを所有するユーザーしかアクセスできません。この制限により、ユーザーは自分で制御し、所有者だけが使用できる別名を作成できます。.mailrc ファイルの別名の形式は、次のとおりです。


alias aliasname value value value ...

aliasname は、ユーザーがメールの送信時に使用する名前であり、value は有効な電子メールアドレスです。

ユーザーが scott に個人的な別名を作成し、それがネームサービスの scott の電子メールアドレスと一致しない場合、エラーが発生します。そのユーザーが作成したメールにユーザーが返信しようとするときに、メールが間違ったユーザーに転送されることになります。これを回避するには、別の別名命名方式を使用する以外にありません。

/etc/mail/aliases ファイル

/etc/mail/aliases ファイルで作成したいずれの別名も、その別名の名前と、ファイルを含んでいるシステムのホスト名を知っているユーザーならだれでも使用できます。ローカルの /etc/mail/aliases ファイルの配布リストの形式は、次のとおりです。


aliasname: value,value,value ...

aliasname は、ユーザーがこの別名にメールを送信するときに使用する名前で、value は有効な電子メールアドレスになります。

使用するネットワークがネームサービスを実行していない場合は、各システムの /etc/mail/aliases ファイルにすべてのメールクライアントのエントリを入れておく必要があります。各システムのファイルを編集するか、1 つのシステムのファイルを編集してからそのファイルをほかのシステムに個々にコピーします。

/etc/mail/aliases ファイルの別名は、テキスト形式で保存されます。/etc/mail/aliases ファイルを編集するときには、newaliases プログラムを実行する必要があります。このプログラムは、データベースをコンパイルし直し、sendmail プログラムが別名をバイナリ形式で使用できるようにします。作業手順については、「ローカルメール別名ファイルを設定する方法」第 13 章メールサービス (手順)を参照してください。それ以外の場合、Solaris 管理コンソールの「メーリングリスト」機能を使ってローカルの /etc ファイルに保存されているメール別名を管理できます。

現在のホスト名やホスト名なしなどのローカル名のみに別名を作成できます。たとえば、システム saturn にメールボックスのあるユーザー ignatz の別名エントリには、/etc/mail/aliases ファイルの次のエントリが入ります。


ignatz: ignatz@saturn

各メールサーバーに管理アカウントを作成する必要があります。管理アカウントを作成するには、メールサーバーのメールボックスを root に割り当て、root のエントリを /etc/mail/aliases ファイルに追加します。たとえば、システム saturn がメールボックスサーバーの場合は、エントリ root: sysadmin@saturn/etc/mail/aliases ファイルに追加します。

通常は、root ユーザーだけがこのファイルを編集できます。ただし、Solaris 管理コンソールを使用する場合は、sysadmin グループであるグループ 14 のすべてのユーザーが、ローカルファイルを変更できます。または、次のエントリを作成します。


aliasname: :include:/path/aliasfile

aliasname は、ユーザーがメールを送信するときに使用する名前であり、/path/aliasfile は別名リストを含むファイルへのフルパスになります。別名ファイルには、各行に 1 つの電子メールエントリを入れ、その他の表記は付けないでください。


user1@host1
user2@host2

/etc/mail/aliases に追加のメールファイルを定義して、ログやバックアップコピーの管理もできます。次のエントリでは、aliasname に送信されるすべてのメールを filename 内に格納します。


aliasname: /home/backup/filename

また、ほかのプロセスにメールを回送することもできます。次の例のように入力すると、メールメッセージのコピーが filename 内に格納され、コピーがプリントされます。


aliasname: "|tee -a /home/backup/filename |lp"

作業マップについては、第 13 章メールサービス (手順)「メール別名ファイルの管理 (作業マップ)」を参照してください。

NIS aliases マップ

ローカルドメインのすべてのユーザーは、NIS aliases マップのエントリを使用できます。sendmail プログラムは、ローカルの /etc/mail/aliases ファイルの代わりに NIS aliases マップを使って送信アドレスを決定できるからです。詳細は、nsswitch.conf(4) のマニュアルページを参照してください。

NIS aliases マップの別名は、次のようになります。


aliasname: value,value,value ...

aliasname は、ユーザーがメールの送信時に使用する名前であり、value は有効な電子メールアドレスです。

NIS aliases マップには、すべてのメールクライアント用のエントリを含めてください。一般にこれらのエントリを変更できるのは、NIS マスターの root ユーザーだけです。この種の別名は頻繁に変更される場合には適していません。次の構文例のように、ほかの別名ファイルをポイントする場合には役立ちます。


aliasname: aliasname@host

aliasname はユーザーがメールを送信するときに使用する名前であり、host/etc/mail/alias ファイルを含むサーバー用のホスト名です。

作業手順については、「NIS mail.aliases マップを設定する方法」第 13 章メールサービス (手順)を参照してください。

NIS+ mail_aliases テーブル

NIS+ mail_aliases テーブルには、名前が含まれており、それによってローカルドメインにおけるシステムや個人が登録されています。sendmail プログラムは、ローカルの /etc/mail/aliases ファイルの代わりに NIS+ mail_aliases テーブルを使用して、メールアドレスを決定できます。詳細は、aliasadm(1M)nsswitch.conf(4) のマニュアルページを参照してください。

NIS+ mail_aliases テーブルの別名は次のようになります。


alias: expansion # ["options" # "comments"]

表 14–12 に、NIS+ mail_aliases テーブルの 4 つの列を示します。

表 14–12 NIS+ mail_aliases テーブルの列

列 

説明 

別名

別名の名前 

expansion

sendmail /etc/mail/aliases ファイルに表示される別名の値または別名のリスト

options

今後の使用のために予約された列 

comments

個々の別名のコメントのための列 

NIS+ mail_aliases テーブルには、すべてのメールクライアントのエントリを含めてください。NIS+ aliases テーブルでは、aliasadm コマンドで、エントリの表示、作成、変更、および削除ができます。aliasadm コマンドを使用するには、aliases テーブルを所有する NIS+ グループのメンバーでなければなりません。作業手順については、「メール別名ファイルの管理 (作業マップ)」第 13 章メールサービス (手順)を参照してください。Solaris 管理コンソールを使用して NIS+ メール別名を管理することもできます。


注 –

新規の NIS+ aliases テーブルを作成する場合は、エントリを作成する前にテーブルを初期設定する必要があります。テーブルが存在するときは、初期設定は不要です。


.forward ファイル

ホームディレクトリに .forward ファイルを作成すると、sendmail およびその他のプログラムは、メールのリダイレクトや送信にこのファイルを使用できます。次の節を参照してください。

作業マップについては、.forward ファイルの管理 (作業マップ)」第 13 章メールサービス (手順)を参照してください。

回避すべき状況

次に、容易に回避または修復できる状況を示します。

.forward ファイルの制御

メール配信で .forward ファイルを有効に使用するために、アクセス権などの次の設定が正しく適用されていることを確認してください。

.forward.hostname ファイル

.forward.hostname ファイルを作成すれば、特定のホストに送信されるメールをリダイレクトできます。たとえば、ユーザーの別名が sandy@phoenix.example.com から sandy@example.com に変更された場合は、sandy のホームディレクトリに .forward.phoenix ファイルを置きます。


% cat .forward.phoenix
sandy@example.com
"|/usr/bin/vacation sandy"
% cat .vacation.msg
From: sandy@example.com (via the vacation program)
Subject: my alias has changed

My alias has changed to sandy@example.com.
Please use this alias in the future.
The mail that I just received from you
has been forwarded to my new address.

Sandy

この例では、メールが正しい宛先に転送され、送信者には別名の変更が通知されます。vacation プログラムではメッセージファイルは 1 つしか使用できないため、この場合 1 回につき 1 つのメッセージしか転送できません。ただし、メッセージが特定のホストに限定されない場合、.forward ファイルで複数のホストに同じ休暇メッセージファイルを使用できます。

.forward+detail ファイル

転送メカニズムの拡張機能にはこの他に、.forward+detail ファイルがあります。detail 文字列には、演算子文字を除く任意の文字を使用できます。演算子文字は、.:%&!^[]+ です。この種のファイルを使用すれば、ほかのユーザーが電子メールアドレスを無断で使用しているかどうかを確認できます。たとえば、あるユーザーが、だれかに電子メールアドレス sandy+test1@example.com を使用するように指示した場合、ユーザーは、この別名に配信されるメールを、アドレスに送信されるメールの中から識別できます。デフォルトにより、sandy+test1@example.com の別名に送信されたメールはすべて、この別名と .forward+detail ファイルと突き合わせて検査されます。ここで一致しない場合は、そのメールは最終的に sandy@example.com に配信されますが、ユーザーは、これらのメールの To: メールヘッダー内の変更箇所を調べることができます。

/etc/default/sendmail ファイル

このファイルは、sendmail のための初期設定用オプションを保存し、ホストをアップグレードしたときにオプションが除去されないようにするために使用します。次の変数を使用することができます。

CLIENTOPTIONS=“string

クライアントデーモンで使用する追加オプションを選択します。クライアントデーモンは、クライアントだけのキュー (/var/spool/clientmqueue) の内容を確認し、クライアントキューランナーとして動作します。構文の検査は行われないため、この変数を変更するときは間違えないように注意してください。

CLIENTQUEUEINTERVAL=#

CLIENTQUEUEINTERVAL には、QUEUEINTERVAL オプションと同様に、メールキューの実行間隔を設定します。ただし、CLIENTQUEUEINTERVAL オプションは、マスターデーモンではなくクライアントデーモンの機能を制御します。一般に、マスターデーモンはすべてのメッセージを SMTP ポートに配信できます。ただし、メッセージ負荷が高すぎる場合、またはマスターデーモンが実行されていない場合、メッセージはクライアントだけのキューである /var/spool/clientmqueue に入ります。次に、クライアントだけのキューをチェックするクライアントデーモンがクライアントキューを処理します。

ETRN_HOSTS=“string

SMTP クライアントとサーバーが、定期的なキューの実行を待たずに即座に対話を実行できるようにします。サーバーは、指定されたホストに送信されるキューを即座に配信できます。詳細は、etrn(1M) のマニュアルページを参照してください。

MODE=-bd

sendmail を起動するためのモードを選択します。-bd オプションを使用するか、未定義のままにしておきます。

OPTIONS=string

マスターデーモンで使用される追加オプションを選択します。構文の検査は行われないため、この変数を変更するときは間違えないように注意してください。

QUEUEINTERVAL=#

マスターデーモンのメールキューの実行間隔を設定します。# は正の整数とし、そのあとに秒の場合は s、分の場合は m、時の場合は h、日の場合は d、週の場合は w を付けます。この構文は sendmail の起動前に確認されます。この間隔が負の場合、またはエントリの最後の文字が不適当な場合、この間隔は無視され、sendmail は 15 分のキュー間隔で起動します。

QUEUEOPTIONS=p

キューを実行するたびに新しいキューランナーを作成する代わりに、各実行の間に休止する単一の永続的なキューランナーを使用できるようにします。このオプションに設定可能な値は p だけです。p 以外に設定すると、このオプションは無効になります。

メールアドレスとメールルーティング

配信時にメールメッセージがたどる経路は、クライアントシステムの設定とメールドメインのトポロジによって異なります。メールホストやメールドメインの各追加レベルでは、別名のもう 1 つの解釈を追加できますが、ルーティングプロセスは基本的にほとんどのホストで同じになります。

クライアントシステムは、メールをローカルに受信できるようにセットアップできます。メールをローカルで受信することは、ローカルモードでの sendmail の実行として知られています。すべてのメールサーバーと一部のクライアントでは、ローカルモードがデフォルトです。ローカルモードのメールサーバーまたはクライアントでは、メッセージは次の要領でルーティングされます。


注 –

次の例では、sendmail.cf ファイルに設定されたデフォルトの規則を使用することを前提にしています。


  1. 可能な場合はメール別名を展開し、ローカルのルーティングプロセスを再起動します。

    ネームサービスでメール別名を確認し、見つかった場合に新しい値と置換することで、メールアドレスが展開されます。次にこの新しい別名が再度確認されます。

  2. メールがローカルの場合、/usr/lib/mail.local に配信されます。

    メールはローカルのメールボックスに配信されます。

  3. メールアドレスがこのメールドメインにホストを含んでいると、そのホストにメールを配信します。

  4. アドレスがこのドメインにホストを含んでいない場合、メールホストにメールを転送します。

    メールホストはメールサーバーと同じルーティングプロセスを使用します。ただし、メールホストはホスト名に加えて、ドメイン名が宛先になっているメールも受信できます。

sendmail とネームサービスの相互作用

ここでは、 sendmail とネームサービスに適用されるドメイン名について説明します。さらに、ネームサービスを有効に利用するための規則、および sendmail とネームサービスの相互作用について説明します。詳細は、次のトピックを参照してください。

関連する作業については、sendmail で DNS を使用する方法」「メール別名ファイルの管理 (作業マップ)」または 第 13 章メールサービス (手順)を参照してください。

sendmail.cf とメールドメイン

標準の sendmail.cf ファイルは、メールドメインを使ってメールを直接配信するか、あるいはメールホストを経由して配信するかを決定します。ドメイン内メールは直接 SMTP 接続経由で配信され、ドメイン間メールはメールホストに送られます。

セキュリティーの高いネットワークでは、ほんの少数の選ばれたホストだけが、外部宛てのパケットを生成する権限を与えられています。ホストがメールドメインの外部のリモートホストの IP アドレスを持っている場合も、SMTP 接続の確立は保証されません。標準の sendmail.cf では次のことを仮定しています。

このように仮定すると、ドメイン間メールの配信または転送はメールホスト側の責任です。

sendmail とネームサービス

sendmail は各種の要件をネームサービスに課します。これらの要件の理解を深めるために、この節では、まずメールドメインからネームサービスドメインへの関係について説明します。その次に個々の要件について説明します。次を参照してください。

メールドメインとネームサービスドメイン

メールドメイン名はネームサービスドメイン名の接尾辞の 1 つでなければなりません。たとえば、ネームサービスのドメイン名が「A.B.C.D」ならば、メールドメイン名は次のうちのいずれかです。

メールドメイン名は、最初の確立時には、多くの場合、ネームサービスドメインと同じになります。ネームサービスドメインは、ネットワークが大きくなるにつれて、ネームサービスをより管理しやすくするために、より小さいドメインに分割することが可能です。他方、メールドメインは、多くの場合、一貫した別名を提供するために分割されないまま残ります。

ネームサービスの要件

ここでは、sendmail がネームサービスに必要とする要件について説明します。

ネームサービスにおけるホストテーブルまたはマップは、次の 3 種類の gethostbyname() による問い合わせをサポートするように設定しなければなりません。

ネームサービス内に有効な sendmail サービスを確立するために、ホストネームサービスに追加された次の 2 つの規則に従う必要があります。

gethostbyname() 関数については、gethostbyname(3NSL) のマニュアルページを参照してください。

NIS と sendmail との相互作用

次に、sendmail と NIS との相互作用について説明し、ガイドラインを示します。

作業手順については、「メール別名ファイルの管理 (作業マップ)」第 13 章メールサービス (手順)を参照してください。

sendmail と NIS および DNS との相互作用

次に、sendmail と NIS および DNS との相互作用について説明し、ガイドラインを示します。

作業手順については、sendmail で DNS を使用する方法」「メール別名ファイルの管理 (作業マップ)」第 13 章メールサービス (手順)を参照してください。

NIS+ と sendmail との相互作用

次に、sendmail と NIS+ との相互作用について説明し、ガイドラインを示します。

作業手順については、「メール別名ファイルの管理 (作業マップ)」第 13 章メールサービス (手順)を参照してください。

sendmail と NIS+ および DNS との相互作用

次に、sendmail と NIS+ および DNS との相互作用について説明し、ガイドラインを示します。

作業手順については、「メール別名ファイルの管理 (作業マップ)」sendmail で DNS を使用する方法」第 13 章メールサービス (手順)を参照してください。

sendmail の version 8.13 での変更点

sendmail のこの新しいバージョンには多くの新機能が用意されていますが、FallBackSmartHost オプションがもっとも重要な追加機能です。このオプションにより、main.cf ファイルおよび subsidiary.cf ファイルを使用する必要がなくなります。main.cf ファイルは、MX レコードをサポートする環境で使用されていました。subsidiary.cf ファイルは、完全に動作する DNS がない環境で使用されていました。そのような環境では、スマートホストが MX レコードの代わりに使用されていました。FallBackSmartHost オプションは、統一された構成を提供します。このオプションは、すべての環境でもっとも優先順位の低い MX レコードのように動作します。このオプションは、有効である場合、メールが確実にクライアントに配信されるように、失敗した MX レコードのバックアップ (フェイルオーバー) として担う接続が保たれた (スマート) ホストを提供します。

version 8.13 の詳細については、次の各節を参照してください。

さらに、Solaris 10 1/06 以降のリリースでは、TLS (Transport Layer Security) を使用して SMTP を実行できます。次に説明します。

sendmail の version 8.13 で TLS を使用して SMTP を実行するためのサポート

SMTP サーバーとそのクライアント間の通信は通常、どちらの側でも制御されたり信頼されたりしません。このようにセキュリティーが存在しないことにより、第三者は、サーバーとクライアントの間の通信を監視し、変更することさえ可能です。Solaris 10 1/06 以降のリリースでは、SMTP は sendmail の version 8.13 で Transport Layer Security (TLS) を使用して、この問題を解決できます。これにより SMTP サーバーおよびクライアントに対するサービスが拡張され、次の機能が実現されます。


注 –

TLS の実装は Secure Sockets Layer (SSL) プロトコルに基づいています。


STARTTLS は、TLS を使用して、セキュリティー保護された SMTP 接続を開始する SMTP キーワードです。このセキュリティー保護された接続は、2 台のサーバーの間、またはサーバーとクライアントの間で行われます。セキュリティー保護された接続は、次のように定義されます。

クライアントが STARTTLS コマンドを発行すると、サーバーは次のいずれかを使用して応答します。

220 応答では、クライアントが TLS ネゴシエーションを開始する必要があります。501 応答は、クライアントが STARTTLS コマンドを正しく発行しなかったことを示します。STARTTLS はパラメータなしで発行されます。454 応答では、クライアントがルールセットの値を適用して、接続を受け入れるか維持するかどうかを決定する必要があります。

インターネットの SMTP インフラストラクチャーを維持するため、公的に使用されるサーバーは TLS ネゴシエーションを要求してはならないことに注意してください。ただし、私的に使用されるサーバーは、クライアントが TLS ネゴシエーションを実行するよう要求しても構いません。このような場合、サーバーは次のような応答を返します。


530 Must issue a STARTTLS command first

530 応答は、 STARTTLS コマンドを発行して接続を確立するようクライアントに指示します。

認証とプライバシーのレベルが不十分である場合、サーバーまたはクライアントは接続を拒否できます。また、多くの SMTP 接続はセキュリティー保護されていないため、サーバーとクライアントはセキュリティー保護されていない接続を維持する場合があります。接続を維持するか拒否するかどうかは、サーバーとクライアントの構成により決まります。

TLS を使用して SMTP を実行するためのサポートは、デフォルトでは有効になっていません。TLS が有効になるのは、SMTP クライアントが STARTTLS コマンドを発行した場合です。SMTP クライアントがこのコマンドを発行する前に、sendmail が TLS を使用できるようにする証明書を設定する必要があります。「TLS を使用するよう SMTP を構成する」を参照してください。この手順には、新しい構成ファイルのオプションの定義と、sendmail.cf ファイルの再構築が含まれることに注意してください。

TLS を使用して SMTP を実行するための構成ファイルのオプション

次の表で、TLS を使用して SMTP を実行するために使用される構成ファイルのオプションを説明します。これらのオプションを宣言する場合は、次の構文のどれかを使用します。

表 14–13 TLS を使用して SMTP を実行するための構成ファイルのオプション

オプション 

説明 

CACertFile

m4 名 : confCACERT

引数 : filename

デフォルト値 : 未定義 

1 つの CA 証明書を含むファイルを指定します。 

CACertPath

m4 名 : confCACERT_PATH

引数 : path

デフォルト値 : 未定義 

複数の CA の証明書が含まれるディレクトリへのパスを指定します。 

ClientCertFile

m4 名 : confCLIENT_CERT

引数 : filename

デフォルト値 : 未定義 

クライアントの証明書が含まれるファイルを指定します。sendmail がクライアントとして動作する場合にこの証明書が使用されることに注意してください。

ClientKeyFile

m4 名 : confCLIENT_KEY

引数 : filename

デフォルト値 : 未定義 

クライアントの証明書に属する秘密鍵が含まれるファイルを指定します。 

CRLFile

m4 名 : confCRL

引数 : filename

デフォルト値 : 未定義 

X.509v3 認証に使用される、証明書の失効ステータスが含まれるファイルを指定します。 

DHParameters

m4 名 : confDH_PARAMETERS

引数 : filename

デフォルト値 : 未定義 

Diffie-Hellman (DH) パラメータが含まれるファイルを指定します。 

RandFile

m4 名 : confRAND_FILE

引数 : file:filename または egd:UNIX socket

デフォルト値 : 未定義 

file: 接頭辞を使用してランダムデータが含まれるファイルを指定するか、egd: 接頭辞を使用して UNIX ソケットを指定します。Solaris OS は乱数生成デバイスをサポートしているため、このオプションを指定する必要はありません。random(7D) のマニュアルページを参照してください。

ServerCertFile

m4 名 : confSERVER_CERT

引数 : filename

デフォルト値 : 未定義 

サーバーの証明書が含まれるファイルを指定します。sendmail がサーバーとして動作する場合にこの証明書が使用されます。

Timeout.starttls

m4 名 : confTO_STARTTLS

引数 : amount of time

デフォルト値 : 1h

STARTTLS コマンドに対する応答を SMTP クライアントが待機する時間を設定します。

TLSSrvOptions

m4 名 : confTLS_SRV_OPTIONS

引数 : V

デフォルト値 : 未定義 

サーバーがクライアントから証明書を要求するかどうかを決定します。このオプションが V に設定されている場合、クライアント検証は行われません。

sendmail で SMTP による TLS の使用をサポートできるようにするには、次のオプションを定義してください。

そのほかのオプションは必須ではありません。

TLS を使用して SMTP を実行するためのマクロ

次の表で、STARTTLS コマンドにより使用されるマクロを説明します。

表 14–14 TLS を使用して SMTP を実行するためのマクロ

マクロ 

説明 

${cert_issuer}

証明書の発行元である認証局 (CA) の識別名 (DN) を保持します。 

${cert_subject}

cert subject と呼ばれる証明書の DN を保持します。

${cn_issuer}

cert issuer である CA の共通名 (CN) を保持します。

${cn_subject}

cert subject と呼ばれる証明書の CN を保持します。

${tls_version}

接続に使用される TLS のバージョンを保持します。 

${cipher}

接続に使用される (cipher suite と呼ばれる) 暗号アルゴリズムのセットを保持します。

${cipher_bits}

接続に使用される対称暗号化アルゴリズムのキーの長さをビット単位で保持します。 

${verify}

提示された証明書の検証結果を保持します。取りうる値は次のとおり 

  • OK – 検証成功。

  • NO – 証明書は提示されません。

  • NOT – 証明書は要求されません。

  • FAIL – 証明書は提示されたが検証不可。

  • NONE STARTTLS は実行されません。

  • TEMP – 一時エラーが発生。

  • PROTOCOL – SMTP エラーが発生。

  • SOFTWARE STARTTLS ハンドシェークが失敗。

${server_name}

現在の出力 SMTP 接続のサーバー名を保持します。 

${server_addr}

現在の出力 SMTP 接続のサーバーのアドレスを保持します。 

TLS を使用して SMTP を実行するためのルールセット

次の表で、TLS を使用する SMTP 接続を、受け入れるか、継続するか、拒否するかを決定するルールセットを説明します。

表 14–15 TLS を使用して SMTP を実行するためのルールセット

ルールセット 

説明 

tls_server

クライアントとして動作する場合、sendmail はこのルールセットを使用して、サーバーが現在 TLS によってサポートされているかどうかを判別します。

tls_client

サーバーとして動作する場合、sendmail はこのルールセットを使用して、クライアントが現在 TLS によってサポートされているかどうかを判別します。

tls_rcpt

このルールセットは、受取人の MTA の検証を必要とします。この受取人の制限により、DNS スプーフィングなどの攻撃が不可能になります。 

TLS_connection

このルールセットは、アクセスマップの RHS により指定された要件を、現在の TLS 接続の実際のパラメータに照合して確認します。 

try_tls

sendmail はこのルールセットを使用して、別の MTA への接続時に STARTTLS を使用できるかを判別します。MTA が適切に STARTTLS を実装できない場合、STARTTLS は使用されません。

詳細は、http://www.sendmail.org/m4/starttls.html を参照してください。

TLS を使用した SMTP の実行に関連するセキュリティーの検討事項

インターネットで動作するメールプログラムを定義する標準メールプロトコルとしては、SMTP はエンドツーエンドのメカニズムではありません。このプロトコルの制限により、SMTP を介した TLS のセキュリティーにはメールユーザーエージェントは含まれていません。メールユーザーエージェントは、ユーザーと (sendmail などの) メール転送エージェントの間のインタフェースとして動作します。

また、メールは複数のサーバーを経由してルーティングされる場合があります。SMTP のセキュリティーを完全にするには、SMTP 接続のチェーン全体に TLS のサポートが必要です。

最終的には、サーバーの各ペア、またはクライアントとサーバーのペアの間でネゴシエーションされる認証と機密性のレベルを考慮すべきです。詳細は、『Solaris のシステム管理 (セキュリティサービス)』「認証サービス」を参照してください。

sendmail の version 8.13 で追加されたコマンド行オプション

次の表に、sendmail の version 8.13 で追加されたコマンド行オプションを示します。コマンド行のほかのオプションについては、sendmail(1M) のマニュアルページを参照してください。

表 14–16 sendmail の version 8.13 で使用可能になったコマンド行オプション

オプション 

説明 

-D logfile

この情報を標準出力に含めるのではなく、指定された logfile にデバッグ出力を送信します。

-q[!]Qsubstr

隔離 reason の部分文字列である substr を持つ隔離されたジョブの処理を指定します。-Q reason オプションの説明を参照。!が追加された場合、このオプションは、この substr を持たない隔離されたジョブを処理します。

-Qreason

この reason を持つ通常のキュー項目を隔離します。reason が指定されていない場合、隔離されるキュー項目が隔離されません。このオプションは、-q[!]Qsubstr オプションと連動します。substr は、reason の一部 (部分文字列) です。

sendmail の version 8.13 で追加または改訂された構成ファイルオプション

次の表に、追加または改訂された構成ファイルオプションを示します。これらのオプションを宣言する場合は、次の構文のどれかを使用します。


O OptionName=argument          # for the configuration file
-O OptionName=argument         # for the command line
define(`m4Name',argument)     # for m4 configuration
表 14–17 sendmail の version 8.13 で使用可能な構成ファイルオプション

オプション 

説明 

ConnectionRateWindowSize

m4 名 : confCONNECTION_RATE_WINDOW_SIZE

引数 : number

デフォルト値 : 60

受信接続を維持する秒数を設定します。 

FallBackSmartHost

m4 名 : confFALLBACK_SMARTHOST

引数 : hostname

このオプションは、メールが確実にクライアントに配信されるように、失敗した MX レコードのバックアップ (フェイルオーバー) として担う接続が保たれたホストを提供します。 

InputMailFilters

m4 名 : confINPUT_MAIL_FILTERS

引数 : filename

sendmail デーモンの入力メールフィルタを示します。

PidFile

m4 名 : confPID_FILE

引数 : filename

デフォルト値 : /var/run/sendmail.pid

今までのリリースのように、ファイルを開く前に、そのファイル名がマクロで展開されます。さらに、version 8.13 では、sendmail の終了時にファイルへのリンクが削除されます (unlinked)。

QueueSortOrder

m4 名 : confQUEUE_SORT_ORDER

追加された引数 : none

version 8.13 では、ソート順序を指定しない場合に none を使用します。

RejectLogInterval

m4 名 : confREJECT_LOG_INTERVAL

引数 : period-of-time

デフォルト値 : 3h (3 時間)

指定した period-of-time に対してデーモン接続が拒否された場合、その情報が記録されます。

SuperSafe

m4 名 : confSAFE_QUEUE

短縮名 : s

追加された引数 : postmilter

デフォルト値 : true

postmilter が設定されている場合、sendmail は、すべての milters がメッセージの受付の信号を送るまで、キューファイルとの同期を延期します。この引数を有効にするには、sendmail が SMTP サーバーとして実行される必要があります。それ以外の場合、postmiltertrue 引数を使用しているように動作します。

sendmail の version 8.13 で追加または改訂された FEATURE() の宣言

次の表に、追加または改訂された FEATURE() の宣言を示します。この m4 マクロは次の構文を使用します。


FEATURE(`name', `argument')
表 14–18 sendmail の version 8.13 で使用可能な FEATURE() の宣言

FEATURE() の名前

説明 

conncontrol

access_db ルールセットと連動して、受信 SMTP 接続の数を確認します。詳細は、/etc/mail/cf/README を参照してください。

greet_pause

オープンプロキシと SMTP のスラミング保護を可能にする、greet_pause ルールセットを追加します。詳細は、/etc/mail/cf/README を参照してください。

local_lmtp

デフォルトの引数は引き続き mail.local であり、今回の Solaris のリリースでの LMTP を使用できるメールプログラムです。ただし、version 8.13 で、LMTP を使用できる別のメールプログラムを使用する場合は、パス名を 2 番目のパラメータとして指定し、2 番目のパラメータに渡される引数を 3 番目のパラメータとして指定します。次に例を示します。


FEATURE(`local_lmtp', `/usr/local/bin/lmtp', `lmtp')

mtamark

“TXT RRs による逆引き DNS でのメール転送エージェントのマーキング” (MTAMark) を試験的にサポートします。詳細は、/etc/mail/cf/README を参照してください。

ratecontrol

access_db ルールセットと連動して、ホストに対する接続速度を制御します。詳細は、/etc/mail/cf/README を参照してください。

use_client_ptr

この FEATURE() が有効になっている場合、ルールセット check_relay$&{client_ptr} というこの引数で最初の引数を上書きします。

sendmail の version 8.12 からの変更点

この節では、次のトピックについて説明します。

sendmail の version 8.12 からの TCP ラッパーのサポート

TCP ラッパーは、特定のネットワークサービスを要求するホストのアドレスをアクセス制御リスト (ACL) と突き合わせて検査することによるアクセス制御の実装方法を提供します。要求は、状況に応じて、許可されたり拒否されたりします。このアクセス制御メカニズムを提供する以外に、TCP ラッパーは、ネットワークサービスに対するホストの要求を記録します。これは、有用な監視機能です。アクセス制御のもとに置かれるネットワークサービスの例として、rlogindtelnetdftpd などがあります。

version 8.12 より、sendmail で TCP ラッパーが使用できるようになりました。この検査によってほかのセキュリティー対策が省略されることはありません。sendmail で TCP ラッパーを有効にすることにより、検査が追加され、ネットワーク要求元の妥当性が検証されてから要求が許可されます。hosts_access(4) のマニュアルページを参照してください。


注 –

inetd(1M) および sshd(1M) での TCP ラッパーは、Solaris 9 リリースからサポートされています。


ACL については、『Solaris のシステム管理 (セキュリティサービス)』「アクセス制御リストによる UFS ファイルの保護」を参照してください。

sendmail の version 8.12 からの submit.cf 構成ファイル

version 8.12 より、sendmail に新しい構成ファイル /etc/mail/submit.cf が含まれるようになりました。この submit.cf ファイルを使用して、sendmail をデーモンモードではなく、メール配信プログラムモードで実行できます。デーモンモードとは異なり、メール配信プログラムモードでは root 権限は必要ありません。そのため、この新しいパラダイムを使用すると、セキュリティーが向上します。

submit.cf の機能については、次を参照してください。

次の事項に注意してください。

sendmail.cfsubmit.cf の機能の相違点

構成ファイル sendmail.cf は、デーモンモードで使用します。このファイルを使用すると、sendmail は、メール転送エージェント (MTA) として動作します。sendmail は、root によって起動されます。


/usr/lib/sendmail -L sm-mta -bd -q1h

sendmail.cf 特有のほかの機能については、次を参照してください。

sendmail の version 8.12 からの機能の変更

submit.cf が追加されたため、次の機能が変更されました。

sendmail の version 8.12 から追加されたまたは推奨されないコマンド行オプション

次の表では、 sendmail の追加されたコマンド行オプションまたは推奨されないコマンド行オプションについて説明します。コマンド行のほかのオプションについては、sendmail(1M) のマニュアルページを参照してください。

表 14–19 sendmail の version 8.12 から追加されたまたは推奨されないコマンド行オプション

オプション 

説明 

-Ac

オペレーションモードが初期メール配信を示していない場合でも、構成ファイル submit.cf を使用します。submit.cf についての詳細は、sendmail の version 8.12 からの submit.cf 構成ファイル」を参照してください。

-Am

オペレーションモードが初期メール配信を示している場合でも、構成ファイル sendmail.cf を使用します。詳細は、sendmail の version 8.12 からの submit.cf 構成ファイル」を参照してください。

-bP

各キューのエントリ数を出力します。 

-G

コマンド行から送信されたメッセージが、初期送信のためでなく、中継のためであることを示します。アドレスが絶対パスではない場合は、メッセージは拒否されます。正規化は実行されません。ftp://ftp.sendmail.orgsendmail とともに配布しているリリースノートで説明しているように、将来のリリースでは、不適切な形式のメッセージが拒否される可能性があります。

-L tag

指定された syslog メッセージに使用する識別子を タグ (tag) に設定します。

- q[!]I substring

受信者にこの部分文字列 (substring) を含むジョブだけを処理します。オプションに ! を追加すると、受信者にこの部分文字列 (substring) を含まないジョブだけを処理します。

- q[!]R substring

キュー ID にこの部分文字列 (substring) を含むジョブだけを処理します。オプションに ! を追加すると、キュー ID にこの部分文字列 (substring) を含まないジョブだけを処理します。

- q[!]S substring

送信者にこの部分文字列 (substring) を含むジョブだけを処理します。オプションに ! を追加すると、送信者にこの部分文字列 (substring) を含まないジョブだけを処理します。

-qf

キューにあるメッセージをシステムコール fork を使用しないで一度処理し、フォアグラウンドでプロセスを実行します。fork(2) のマニュアルページを参照してください。

-qGname

name で指定するキューグループにあるメッセージだけを処理します。

-qptime

各キュー用にフォークされた子プロセスを使用して、キューに保存されているメッセージを指定した間隔で処理します。次にキューが実行されるまでの間、その子プロセスはスリープしています。この新しいオプションは -qtime に似ています。qtime は、定期的に子をフォークしてキューを処理します。

-U

ftp://ftp.sendmail.orgsendmail とともに配付しているリリースノートで説明しているように、このオプションは version 8.12 以降では使用できません。メールユーザーエージェントでは、引数 -G を使用することをお勧めします。

sendmail の version 8.12 から PidFile オプションおよび ProcessTitlePrefix オプションに追加された引数

次の表では、PidFile オプションおよび ProcessTitlePrefix オプションにおけるマクロ処理の追加引数について説明します。これらのオプションについては、sendmail(1M) のマニュアルページを参照してください。

表 14–20 PidFile オプションおよび ProcessTitlePrefix オプションの引数

マクロ 

説明 

${daemon_addr}

0.0.0.0 などのデーモンアドレスを提供します。 

${daemon_family}

inetinet6 などのデーモンファミリーを提供します。

${daemon_info}

SMTP+queueing@00: 30:00 などのデーモン情報を提供します。 

${daemon_name}

MSA などのデーモン名を提供します。 

${daemon_port}

25 などのデーモンポートを提供します。 

${queue_interval}

キューを実行する間隔を提供します (00:30:00 など)。 

sendmail の version 8.12 から追加定義されたマクロ

次の表では、sendmail プログラムで使用するための追加マクロについて説明しています。マクロの値は、内部で割り当てられています。詳細は、sendmail(1M) のマニュアルページを参照してください。

表 14–21 sendmail に追加定義されたマクロ

マクロ 

説明 

${addr_type}

現在のアドレスを、エンベロープの送信側または受信者アドレスと認定します。 

${client_resolve}

${client_name} の解釈処理コールの結果、 つまり OKFAILFORGED、または TEMP を保持します。

${deliveryMode}

DeliveryMode オプションの値ではなく、sendmail が使用している現在のデリバリモードを指定します。

${dsn_notify}${dsn_envid}${dsn_ret}

対応する DSN パラメータ値を保持します。 

${if_addr}

インタフェースがループバックネット上にない場合に、受信接続用インタフェースのアドレスを提供します。このマクロは、特に仮想ホスティングに便利です。 

${if_addr_out}${if_name_out}${if_family_out}

${if_addr} の再利用を避けます。次の値を、それぞれ保持します。

送信接続用インタフェースのアドレス 

送信接続用インタフェースのホスト名 

送信接続用インタフェースのファミリ 

${if_name}

受信接続用のインタフェースのホスト名を提供します。これは、特に仮想ホスティングに便利です。  

${load_avg}

実行キューにあるジョブの現在の平均数を確認して報告します。 

${msg_size}

ESMTP ダイアログにあるメッセージサイズの値 (SIZE=parameter) を保持してから、メッセージを収集します。その後、sendmail によって計算されたメッセージサイズを保持したマクロを check_compat で使用します。check_compat については、表 14–25 を参照してください。

${nrcpts}

妥当性検査を行なった受信者の数を保持します。 

${ntries}

配信を試みた回数を保持します。 

${rcpt_mailer}${rcpt_host}${rcpt_addr}${mail_mailer}${mail_host}、および ${mail_addr}

引数 RCPT および MAIL を構文解析した結果を保持します。つまり、メール配信エージェント ($#mailer)、ホスト ($@host)、およびユーザー ($:addr) から解釈処理された RHS (Right-Hand Side) トリプレットを保持します。

sendmail の version 8.12 から追加されたマクロ

この節では、構成ファイル sendmail を構築するのに使用する追加マクロについて説明した表を示します。

表 14–22 構成ファイル sendmail を構築するのに使用する追加マクロ

マクロ 

説明 

LOCAL_MAILER_EOL

ローカルメールプログラムの行末を示すデフォルト文字列を置きかえます。 

LOCAL_MAILER_FLAGS

デフォルトで Return-Path: ヘッダーを追加します。

MAIL_SETTINGS_DIR

メール設定ディレクトリのパスを格納します (末尾のスラッシュを含む)。 

MODIFY_MAILER_FLAGS

*_MAILER_FLAGS を拡張します。このマクロは、フラグを設定、追加、または削除します。

RELAY_MAILER_FLAGS

中継メールプログラムの追加フラグを定義します。 

sendmail の version 8.12 から追加された MAX マクロ

次のマクロを使用して、受け入れ可能なコマンドを最大数設定し、sendmail による配信の遅れを防止することができます。これらの MAX マクロは、コンパイル時に設定できます。次の表にある最大値は、現在のデフォルト値でもあります。

表 14–23 追加された MAX マクロ

マクロ 

最大値 

各マクロが検査するコマンド 

MAXBADCOMMANDS

25 

未知のコマンド 

MAXNOOPCOMMANDS

20 

NOOPVERBONEXXUSR

MAXHELOCOMMANDS

HELOEHLO

MAXVRFYCOMMANDS

VRFYEXPN

MAXETRNCOMMANDS

ETRN


注 –

マクロによる確認を無効にするには、マクロの値を 0 に設定します。


sendmail の version 8.12 から追加または改訂された m4 構成マクロ

この節では、sendmail において追加または改訂された m4 構成マクロの表を示します。これらのマクロを宣言するには、次の構文を使用します。


symbolic-name(`value')

新しい sendmail.cf ファイルを構築する必要がある場合は、「sendmail 構成を変更する」第 13 章メールサービス (手順)を参照してください。

表 14–24 sendmail において追加または改訂された m4 構成マクロ

m4 マクロ

説明 

FEATURE()

詳細は、sendmail の version 8.12 からの FEATURE() の宣言についての変更点」を参照してください。

LOCAL_DOMAIN()

このマクロは、クラス w ($=w) にエントリを追加します。

MASQUERADE_EXCEPTION ()

マスカレードできないホストやサブドメインを定義する新しいマクロ。 

SMART_HOST()

このマクロは user@[host] のように、括弧で囲まれたアドレスに使用できます。

VIRTUSER_DOMAIN() または VIRTUSER_DOMAIN_FILE()

これらのマクロを使用する場合は、$=R$={VirtHost} を含めます。$=R は、中継が許可された一連のホスト名です。

sendmail の version 8.12 からの FEATURE() の宣言についての変更点

FEATURE() の宣言についての変更点については、次の表を参照してください。

FEATURE の新しい名前および改訂された名前を使用するには、次の構文を使用します。


FEATURE(`name', `argument')

新しい sendmail.cf ファイルを構築する必要がある場合は、「sendmail 構成を変更する」第 13 章メールサービス (手順)を参照してください。

表 14–25 追加または改訂された FEATURE() の宣言

FEATURE() の名前

説明 

compat_check

引数 : 次の段落の例を参照してください。 

この新しい FEATURE() によって、送信者アドレスと受信者アドレスからなるアクセスマップ内でキーを検索できます。この FEATURE() は、文字列 <@> で区切ります。たとえば、sender@ sdomain<@>recipient @rdomain のようにします。

delay_checks

引数 : friend にすると、スパムメールの friend テストを実行できます。また、hater にすると、スパムメールの hater テストを実行できます。

すべての検査作業を遅らせる新しい FEATURE()FEATURE(`delay_checks') を使用すると、クライアントが接続する場合、またはクライアントが MAIL コマンドを発行する場合に、ルールセット check_mail および check_relay は呼び出されません。代わりに、これらのルールセットはルールセット check_rcpt によって呼び出されます。詳細については、/etc/mail/cf/README ファイルを参照してください。

dnsbl

引数 : この FEATURE() は、最大次の 2 つの引数を受け入れます。

  • DNS サーバー名

  • リジェクトメッセージ

DNS 参照の戻り値を検査する回数を複数にできる新しい FEATURE()。この FEATURE() を使用して、参照が一時的に失敗した場合の動作を指定できます。

enhdnsbl

引数 : ドメイン名。 

dnsbl の強化バージョンの新しい FEATURE() 。この FEATURE を使用して、DNS 参照の戻り値を検査できます。詳細は、/etc/mail/cf/README を参照してください。

generics_entire_domain

引数 : なし。 

genericstable$=G のサブドメインに適用するのにも使用できる新しい FEATURE()

ldap_routing

引数 : 詳細は、http://www.sendmail.org の「リリースノート」を参照してください。

LDAP アドレスルーティングを実装する新しい FEATURE()

local_lmtp

引数 : LMTP (Local Mail Transfer Protocol) を使用できるメールプログラムのパス名。デフォルトは mail.local であり、今回の Solaris リリースでは LMTP を使用できます。

ローカルメールプログラムの DSN (delivery status notification) 診断コードのタイプを SMTP の正しい値に設定する FEATURE()

local_no_masquerade

引数 : なし。 

ローカルメールプログラムをマスカレードしないようにするために使用する新しい FEATURE()

lookupdotdomain

引数 : なし。 

アクセスマップの .domain を参照するのに使用する新しい FEATURE()

nocanonify

引数 : canonify_hosts またはなし。

FEATURE() には次の機能が含まれます。

CANONIFY_DOMAIN または CANONIFY_DOMAIN_FILE で指定した、ドメインのリストを演算子 $[ および $] に渡して正規化することができます。

canonify_hosts がそのパラメータとして指定されている場合には、<user@host> など、ホスト名だけを含むアドレスを正規化できます。

複数のコンポーネントを持つアドレスの末尾にドットを追加できます。 

no_default_msa

引数 : なし。 

sendmail のデフォルト設定を m4 構成ファイルでオフにする新しい FEATURE()。このファイルは、複数の異なるポート上で待機するために生成されたもので、RFC 2476 に実装されています。

nouucp

引数 : reject にすると、! トークンを使用できません。 nospecial にすると、! トークンを使用できます。

! トークンをアドレスのローカルの部分に使用するかどうかを決定する FEATURE()

nullclient

引数 : なし。 

通常の構成ですべてのルールセットを提供する FEATURE()。スパムメール対策チェックを実行します。

preserve_local_plus_detail

引数 : なし。 

sendmail がアドレスをローカル配信エージェントに渡す際に、アドレスの +detail の部分を保存できる新しい FEATURE()

preserve_luser_host

引数 : なし。 

LUSER_RELAY を使用している場合に、受信者のホスト名を保存できる新しい FEATURE()

queuegroup

引数 : なし。 

電子メールのアドレス全体または受信者のドメインに基づいたキューグループを選択できる新しい FEATURE()

relay_mail_from

引数 : ドメインは、任意の引数です。

メールの送信側がアクセスマップに RELAY として指定されており、それをヘッダー行 From: でタグ付けされている場合に、リレーを許可する新しい FEATURE()。省略可能な引数 domain を指定すると、メール送信側のドメイン部も検査されます。

virtuser_entire_domain

引数 : なし。 

$={VirtHost} を適用するのに使用する FEATURE()。$={VirtHost} は、VIRTUSER_DOMAIN または VIRTUSER_DOMAIN_FILE を使って生成できる virtusertable エントリを一致させるための新しいクラス。

また、FEATURE(`virtuser_entire_domain') を使用して、クラス $={VirtHost} をサブドメイン全体に適用することもできます。

次の FEATURE () 宣言はサポートされなくなりました。

表 14–26 宣言がサポートされていない FEATURE()

FEATURE() の名前

代わりの FEATURE 

rbl

削除されたこの FEATURE() の代わりに、FEATURE(`dnsbl') および FEATURE(`enhdnsbl') を使用してください。

remote_mode

/etc/mail/cf/subsidiary.mc では、FEATURE(`remote_mode') の代わりに MASQUERADE_AS(`$S') を使用できます。$S は、sendmail.cf における SMART_HOST の値。

sun_reverse_alias_files

FEATURE(`genericstable')

sun_reverse_alias_nis

FEATURE(`genericstable')

sun_reverse_alias_nisplus

FEATURE(`genericstable')

sendmail の version 8.12 からの MAILER() の宣言についての変更点

MAILER() を宣言すると、配信エージェントのサポートを指定できます。配信エージェントを宣言するには、次の構文を使用します。


MAILER(`symbolic-name')

次の変更に注意してください。

メールプログラムの詳細は、「メールプログラムと sendmailを参照してください。新しい sendmail.cf ファイルを構築する必要がある場合は、「sendmail 構成を変更する」第 13 章メールサービス (手順)を参照してください。

sendmail の version 8.12 から追加された配信エージェントのフラグ

次の表では、配信エージェントの追加されたフラグについて説明しています。デフォルトでは、これらのフラグは設定されていません。これらの 1 文字のフラグはブール型です。このフラグを設定したりその設定を解除したりするには、次の例のように、フラグを構文ファイルの F= 文に含めるか除外します。


Mlocal,    P=/usr/lib/mail.local, F=lsDFMAw5:/|@qSXfmnz9, S=10/30, R=20/40,
Mprog,     P=/bin/sh, F=lsDFMoqeu9, S=10/30, R=20/40, D=$z:/,
Msmtp,     P=[IPC], F=mDFMuX, S=11/31, R=21, E=\r\n, L=990,
Mesmtp,    P=[IPC], F=mDFMuXa, S=11/31, R=21, E=\r\n, L=990,
Msmtp8,    P=[IPC], F=mDFMuX8, S=11/31, R=21, E=\r\n, L=990,
Mrelay,    P=[IPC], F=mDFMuXa8, S=11/31, R=61, E=\r\n, L=2040,
表 14–27 メールプログラムの追加されたフラグ

フラグ 

説明 

%

このフラグを使用するメールプログラムは、ETRN 要求や次のいずれかのキューオプションを使ってキューにあるメッセージを選択しないかぎり、最初の受信者宛にメールを配信したり、キューを実行したりしません。 -qI-qR、または -qS

1

このフラグは、\0 などのヌル文字を送信するメールプログラムの機能を無効にします。

2

このフラグは、ESMTP の使用を無効にし、代わりに SMTP を使用するように要求します。 

6

このフラグを指定すると、メールプログラムでヘッダーを 7 ビットにすることができます。 

sendmail の version 8.12 から追加された配信エージェントの設定

次の表では、配信エージェントを定義するコマンド M とともに使用できる新しい設定について説明しています。次の構文は、設定を新たに付加する方法、および構成ファイルの既存の設定に新しい引数を付加する方法を示しています。


Magent-name, equate, equate, ...

次の例には、新しい設定 W= が含まれています。この設定は、すべてのデータが送信されたあとでメールプログラムが戻るまでの最長待ち時間を指定します。


Msmtp, P=[IPC], F=mDFMuX, S=11/31, R=21, E=\r\n, L=990, W=2m

m4 の構成値の定義を変更するには、次の例のような構文を使用します。


define(`SMTP_MAILER_MAXMSGS', `1000')

この例では、smtp メールプログラムで 1 回の接続で配信されるメッセージ数を 1000 に制限しています。

新しい sendmail.cf ファイルを構築する必要がある場合は、「sendmail 構成を変更する」第 13 章メールサービス (手順)を参照してください。


注 –

通常、mailer ディレクトリで、この設定の定義を変更するのは、微調整が必要な場合だけです。


表 14–28 配信エージェントの追加された設定

設定 

説明 

/=

引数 : ディレクトリのパス。 

メールプログラムのプログラムを実行する前に chroot() を適用するディレクトリを指定します。

m=

引数 : define() ルーチンを使って事前に定義した次の m4 の値。

    smtp メールプログラムには SMTP_MAILER_MAXMSGS


    local メールプログラムには LOCAL_MAILER_MAXMSGS


    relay メールプログラムには RELAY_MAILER_MAXMSGS


smtplocal、または relay の各メールプログラムで、1 回の接続で配信するメッセージの数を制限します。

W=

引数 : 増分時間。 

すべてのデータの送信後、メールプログラムが戻るまでの最長待ち時間を指定します。 

sendmail の version 8.12 から追加されたキューの機能

次に、キューの追加された機能について詳しく説明します。

作業手順については、「キューディレクトリの管理 (作業マップ)」を参照してください。

sendmail の version 8.12 からの LDAP の変更点

次に、LDAP (Lightweight Directory Access Protocol) を sendmail で使用する際の変更点について説明します。

次の例では、これらのトークンが「 *」検索でどのように違うかを説明します。

表 14–29 トークンの比較

LDAP のマップ指定 

同等の指定 

結果 

-k"uid=%s"

-k"uid=*"

ユーザー属性を持つ任意のレコードに一致します 

-k"uid=%0"

-k"uid=\2A"

*」という名前を持つユーザーに一致します

次の表では、LDAP マップの追加されたフラグについて説明しています。

表 14–30 LDAP マップの追加されたフラグ

フラグ 

説明 

-1

一致したレコードが 1 つだけだった場合、そのレコードを返します。複数のレコードが一致して返される場合には、結果として、レコードが検出されなかったことと同じとなります。 

-r never|always|search|find

LDAP 別名の参照を解除するオプションを設定します。 

-Z size

一致したもののうち、返すレコード数を制限します。 

sendmail の version 8.12 からの組み込まれたメールプログラムの変更

前のバージョンに組み込まれていたメールプログラム [TCP] は使用できません。代わりに、新しく組み込まれたメールプログラム P=[IPC] を使用してください。プロセス間通信 ([IPC]) 組み込みメールプログラムで、それをサポートするシステム上の UNIX ドメインソケットへの配信を行えるようになりました。このメールプログラムは、指定したソケットで待機している LMTP 配信エージェントとともに使用できます。次に、メールプログラムの例を示します。


Mexecmail, P=[IPC], F=lsDFMmnqSXzA5@/:|, E=\r\n, 
S=10, R=20/40, T=DNS/RFC822/X-Unix, A=FILE /var/run/lmtpd

[IPC] メールプログラムの最初の引数の値が妥当であるか検査されるようになりました。次の表では、最初のメールプログラム引数に設定可能な値について説明しています。

表 14–31 最初のメールプログラム引数に設定可能な値

値 

説明 

A=FILE

UNIX ドメインソケットによる配信に使用します。 

A=TCP

TCP/IP 接続に使用します。 

A=IPC

最初のメールプログラム引数としては使用できません。 

sendmail の version 8.12 から追加されたルールセット

次の表では、追加されたルールセットとその動作について説明しています。

表 14–32 新しいルールセット

ルールセット 

説明 

check_eoh

ヘッダーから収集した情報を相関させ、欠けているヘッダーを検査します。このルールセットは、マクロストレージマップとともに使用し、すべてのヘッダーが収集されたあと、呼び出されます。  

check_etrn

check_rcptRCPT を使用するように、ETRN コマンドを使用します。

check_expn

check_rcptRCPT を使用するように、EXPN コマンドを使用します。

check_vrfy

check_rcptRCPT を使用するように、VRFY コマンドを使用します。

次に、ルールセットの追加機能について説明します。

sendmail の version 8.12 からのファイルの変更点

次の変更に注意してください。

sendmail version 8.12 と構成内の IPv6 アドレス

sendmail の version 8.12 より、アドレスを正しく識別するために、構成に使用する IPv6 アドレスの前に IPv6: タグを付ける必要があります。IPv6 アドレスを識別しない場合は、タグを前に付けません。