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

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

第 21 章「メールサービス (概要)」

メールサービスの概要

第 22 章「メールサービス (手順)」

メールサービスの設定と障害追跡 (トラブルシューティング)

第 23 章「メールサービス (リファレンス)」

メールサービスの背景情報について

第 24 章「メールサービスの新機能 (リファレンス)」

メールサービスの新機能情報について

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

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

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

第 23 章「メールサービス (リファレンス)」では、メールサービスのコンポーネントについて詳しく説明します。 また、この章では、メールサービスのプログラムとファイル、メールルーティング処理、ネームサービスを使った sendmail の対話型操作についても説明します。

sendmail バージョン 8.12 の新機能

今回の Solaris 9 リリースには sendmail のバージョン 8.12 が含まれています。第 24 章「メールサービスの新機能 (リファレンス)」 では、すべての新機能について説明します。以下に、sendmail の重要な変更点の一部を紹介します。

第 24 章「メールサービスの新機能 (リファレンス)」 では、上記以外の次の変更点についても説明します。

その他の sendmail の情報源

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

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

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

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

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

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

コンポーネント 

説明  

.forward ファイル

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

メールボックス 

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

メールアドレス 

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

メール別名 

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

メールキュー 

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

ポストマスター 

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

sendmail 構成ファイル 

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

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

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

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

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

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

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

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

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

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

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

sendmail バージョン 8.12 の新機能については、第 24 章「メールサービスの新機能 (リファレンス)」を参照してください。mail.localmailstats、および makemap の変更点についての説明もあります。 また、第 24 章「メールサービスの新機能 (リファレンス)」では、新しい保守コマンド editmap についても説明します。

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

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

作業 

説明 

参照先 

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

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

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

sendmail 構成ファイルを構築する

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

sendmail.cf 構成ファイルの構築 (手順)

代替構成を使ってメール配信を管理する 

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

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

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

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

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

メールキューを管理する 

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

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

.forward ファイルを管理する

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

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

メールサービスの障害追跡手順とヒント 

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

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

エラーメッセージを解釈処理する 

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

エラーメッセージの解釈

メールシステムの計画

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

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

ローカルメール専用

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

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

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

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

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

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

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

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

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

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

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

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

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

作業 

説明 

参照先 

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

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

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

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

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

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

メールホストを設定する 

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

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

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

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

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

sendmail で DNS を使用する

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

sendmail で DNS を使用する方法

仮想ホストを設定する 

ホストに複数の IP アドレスを割り当てる手順 

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

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

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

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


注 –

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


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

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

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


注 –

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


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

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

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

  2. sendmail を停止します。


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


    # share
    

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

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

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

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

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

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


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


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

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


      # ypwhich
      

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

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


      # nisls
      

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

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


      # nslookup hostname
      
      hostname

      ホスト名を指定

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

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


      # ldaplist
      

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

  6. sendmail を再起動します。


    # /etc/init.d/sendmail start
    

注 –

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


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

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


注 –

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


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

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

  2. sendmail を停止します。


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

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


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

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

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

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

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

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


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

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

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

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


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

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


      # mountall
      

      注意 – 注意 –

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


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

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


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

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

    example.com

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

    mailhost

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

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

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

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


    注 –

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


  8. sendmail を再起動します。


    # /etc/init.d/sendmail start
    

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

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

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

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

  2. sendmail を停止します。


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

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


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

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

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

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

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

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


      IP_address mailhost mailhost mailhost.domain loghost
      IP_address

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

      mailhost

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

      domain

      拡張ドメイン名を指定

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


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

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


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


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

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


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


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

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

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

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

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

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

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

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

  2. sendmail を停止します。


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

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


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

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


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

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

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

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


      # ypwhich
      

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

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


      # nisls
      

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

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


      # nslookup hostname
      
      hostname

      ホスト名を指定

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

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


      # ldaplist
      

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

  6. sendmail を再起動します。


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

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

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

sendmail で DNS を使用する方法

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

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

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

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

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


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

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

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

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


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

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


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

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

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

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

sendmail.cf 構成ファイルの構築 (手順)

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

詳細は、以下の情報を参照してください。

第 24 章「メールサービスの新機能 (リファレンス)」の次の節では、新しい m4 構成機能について説明しています。

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

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


注 –

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


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

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

  2. sendmail を停止します。


    # /etc/init.d/sendmail stop
    
  3. 変更しようとする構成ファイルのコピーを作成します。


    # cd /usr/lib/mail/cf
    # cp main.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 サービスを再起動します。


    # /etc/init.d/sendmail start
    

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

送受信されるメールの転送を容易にするため、sendmail の新しいデフォルトの構成は、デーモンとクライアントキューランナーを使用します。デーモンを無効にしている場合は、次の作業を行います。詳細は、新しい構成ファイル submit.cf を参照してください。

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

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

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

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

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

  2. sendmail を停止します。


    # /etc/init.d/sendmail stop
    
  3. 変更しようとする構成ファイルのコピーを作成します。必要に応じて、subsidiary.mc または main.mc をコピーします。この例では、subsidiary.mc ファイルを使用します。


    # cd /usr/lib/mail/cf
    # cp subsidiary.mc myhost.mc
    
    myhost

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

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

    MAILER() 行の前に次の行を追加します。


    # cat myhost.mc
    ..
    DAEMON_OPTIONS(`NAME=NoMTA4, Family=inet, Addr=127.0.0.1')dnl
    
    1. (省略可能) ホストで IPv6 ローカルホストアドレスが使用できる場合は、新しい構成ファイルを次のように編集します。

      MAILER() 行の前に次の 2 行を追加します。


      # cat myhost.mc
      ..
      DAEMON_OPTIONS(`NAME=NoMTA4, Family=inet, Addr=127.0.0.1')dnl
      DAEMON_OPTIONS(`NAME=NoMTA6, Family=inet6, Addr=::1')dnl
      
    2. (省略可能) ホストで IPv6 ローカルホストアドレスが使用可能かどうかを調べるには、次のコマンドを実行します。


      # /usr/sbin/ifconfig -a

      IPv6 を使用できる場合は、次のような出力が得られます。


      lo0: flags=2000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1
                    inet6 ::1/128
  5. m4 を使って構成ファイルを構築します。


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


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


    # /etc/init.d/sendmail start
    

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

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

作業 

説明 

参照先 

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+ のようなネームサービスを使用するほどの利点は得られません。しかし、ネットワークのルックアップは必要ないため、ローカルのデータベースファイルからの方がより早くデータを取り出すことができます。詳細は、第 23 章「メールサービス (リファレンス)」sendmail とネームサービスの相互作用 およびメール別名ファイル を参照してください。

NIS+ mail_aliases テーブルの別名エントリを管理する方法

NIS+ テーブルでエントリを管理するために、aliasadm コマンドを使用できます。aliasadm コマンドを使ってテーブルエントリを表示、追加、変更、または削除するには、次の手順に従います。

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

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

  2. 必要に応じて、次に挙げる例のいずれかの手順に従って作業します。

場合によっては、最初にメールクライアント、クライアントのメールボックスの位置、およびメールサーバーシステム名のそれぞれのリストをコンパイルする必要があります。

NIS+ mail_aliases テーブルを作成する例

テーブルを作成するには、次の手順に従います。

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

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

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


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

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

NIS+ mail_aliases テーブルの全内容を表示する例

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

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

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

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


    # aliasadm -1
    

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

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

テーブルの個々のエントリを表示するには、次の手順に従います。

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

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

  2. 個々のエントリを表示します。


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

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

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

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

テーブルの部分一致エントリを表示するには、次の手順に従います。

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

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

  2. テーブル内の部分一致エントリを表示します。


    # aliasadm -l | grep partial_string
    
    partial_string

    検索に使用する文字列を指定

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

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

2 つまたは 3 つの別名をテーブルに追加するには、次の手順に従います。

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

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

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

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

例 — NIS+ mail_aliases テーブルを編集してエントリを追加する

多数の別名をテーブルに追加するには、次の手順に従います。

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

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

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

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

例 — NIS+ mail_aliases テーブル内のエントリを編集する

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

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

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

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

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

テーブルからエントリを削除するには、次の手順に従います。

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

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

  2. テーブルからエントリを削除します。


    # aliasadm -d alias
    
    alias

    削除するエントリの別名を指定

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

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

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

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

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

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

  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 スレーブシステムに伝達されます。変更は、遅くとも数分後には有効になります。

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

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

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

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

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

  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.db ファイルを他の各システムにコピーします。

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

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

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

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

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

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

  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 ファイルそれぞれに別名を作成することもできます。次の手順を参照してください。

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

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

  1. 各ローカルシステムのスーパーユーザーになるか、同等の役割になります。

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

  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 用に別のメールボックスを作成する方法を参照してください。

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

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

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

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

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

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

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


    # mail -f postmaster
    
    postmaster

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

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

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

  1. 各システムのスーパーユーザーになるか、同等の役割になります。

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

  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 を実行する方法

キューディレクトリの管理 (手順)

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

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

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

次の情報を表示するには、以下に示すコマンドを使用します。


# /usr/bin/mailq | more

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

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

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

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

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

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


    # /usr/lib/sendmail -q -v 
    

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

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

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

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

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


    # /usr/lib/sendmail -qRstring
    
    string

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

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


    # /usr/lib/sendmail -qInnnnn
    
    nnnnn

    キュー ID を指定

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

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

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

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

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


    # /etc/init.d/sendmail stop
    

    これで、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 を起動します。


    # /etc/init.d/sendmail start
    

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

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

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

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

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


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

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

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


    # rmdir /var/spool/omqueue
    

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

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

作業 

説明 

参照先 

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

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

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

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

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

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

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

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

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

.forward ファイルの管理 (手順)

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

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

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

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

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

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


    # cd /usr/lib/mail/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') に変更してください。


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

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

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

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

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


    # cd /usr/lib/mail/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') に変更してください。


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

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

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

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

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

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

  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 プログラムを使ってメッセージを記録する

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

エラーメッセージの記録

診断情報のその他の情報源を確認する 

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

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

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

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

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

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

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


    # /etc/init.d/sendmail restart
    
  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.12.6+Sun/8.12.6; Tue, 12 Nov 2002 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 でメールを配信できることが確認されました。

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

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

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

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


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

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


    > 3,0 mail_address
    
    mail_address

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

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

    Control-D キーを押します。

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


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

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

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


% mconnect phoenix

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

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

エラーメッセージの記録

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

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

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


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

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

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

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

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

エラーメッセージの解釈

この節では、Solaris 9 オペレーティング環境で発生する sendmail 関連のエラーメッセージを解釈し対処する方法について説明します。http://www.sendmail.org/faq/ も参照してください。

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


451 timeout waiting for input during source

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

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

関連項目 –Timeout オプションの詳細については、Timeout オプションの変更点を参照してください。 オンラインマニュアルを使用している場合は、検索語として「timeouts」を指定します。


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.html#4.5 を参照してください。


config error: mail loops back to myself.

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

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

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


host name configuration error

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

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


user unknown

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

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

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

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

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

sendmail バージョン 8.12 に含まれている新しい機能については、第 24 章「メールサービスの新機能 (リファレンス)」を参照してください。 mail.localmailstatsmakemap に関する変更、および新しいメンテナンスユーティリティである editmap についてもお読みください。以上の章で説明されていない詳細については、sendmail(1M)mail.local(1M)mailstats(1)makemap(1M)、および editmap(1M) のマニュアルページを参照してください。

Solaris 版 の sendmail

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

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

次に、Solaris 9 に含まれている sendmail のバージョンをコンパイルするときに使用するフラグを示します。構成に他のフラグが必要な場合は、そのソースをダウンロードし、バイナリにコンパイルし直してください。このプロセスについては、http://www.sendmail.org を参照してください。

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

フラグ 

説明 

SOLARIS=20900

Solaris 9 オペレーティング環境をサポートする 

MILTER

メールフィルター API をサポートする 

NETINET6

IPv6 をサポートする。このフラグは、conf.h から Makefile に移動

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

フラグ 

説明 

NDBM

ndbm データベースをサポートする

NEWDB

db データベースをサポートする

USERDB

User データベースをサポートする

NIS

nis データベースをサポートする

NISPLUS

nisplus データベースをサポートする

LDAPMAP

LDAP のマップをサポートする

MAP_REGEX

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

表 23–3 Solaris のフラグ

フラグ 

説明 

SUN_EXTENSIONS

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

SUN_LOOKUP_MACRO

sendmail.cfLG 構成コマンドをサポートする。この 2 つのコマンドの使用は推奨されない

SUN_INIT_DOMAIN

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

SUN_SIMPLIFIED_LDAP

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

VENDOR_DEFAULT=VENDOR_SUN

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

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

表 23–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 固有のフラグは表示されません。


sendmail の代替コマンド

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

表 23–5 代替 sendmail コマンド

代替名 

Solaris への組み込み 

sendmail を使用したオプション

hoststat 組み込まれていないsendmail -bh
mailq 組み込まれているsendmail -bp
newaliases 組み込まれているsendmail -bi
purgestat 組み込まれていないsendmail -bH
smtpd 組み込まれていないsendmail -bd

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

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

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

フィールド 

説明 

V7/Sun

sendmail のバージョン 8.8 で使用された設定

V8/Sun

sendmail のバージョン 8.9 で使用された設定。この設定は、Solaris 8 に含まれていた

V9/Sun

sendmail のバージョン 8.10 と 8.11 で使用された設定

V10/Sun

sendmail のバージョン 8.12 で使用される設定。バージョン 8.12 は、Solaris 9 のデフォルト


注 –

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


作業手順については、第 22 章「メールサービス (手順)」sendmail.cf 構成ファイルの構築 (手順) を参照してください。

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

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

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

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

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

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

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

メール転送エージェント

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

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

「ローカル配信エージェント」は、メールの配信プロトコルを実行するプログラムです。Solaris オペレーティング環境に搭載されているローカル配信エージェントについては以下に述べます。

第 24 章「メールサービスの新機能 (リファレンス)」では、以下の関連項目について説明します。

メールプログラム

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

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

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

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

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

UUCP の使用は、できるだけ避けてください。説明については、http://www.sendmail.org/m4/uucp.html を参照するか、/usr/lib/mail/README で「UUCP メールプログラムの使用」という文字列を検索してください。

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

uucp-old

$=U クラスの名前が uucp-old に送られます。 uucp は、このメールプログラムの以前の名前です。 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 つ以上の「サブドメイン」を持つことができます。アドレスのドメインとサブドメインは、ファイルシステムの階層と比較できます。サブディレクトリが上位のディレクトリに含まれるように、メールアドレスの各サブドメインもその右のドメインに含まれると考えられます。

次の表に米国における最上位のドメインを示します。

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

ドメイン 

説明 

com

企業 

edu

教育機関用 

gov

米国の政府機関 

mil

米国の軍事機関  

net

ネットワーク組織 

org

その他の非営利組織 

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

ドメインについての詳細は、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』の「ドメインネームシステム (概要)」を参照してください。

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

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

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

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

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


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

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


注 –

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


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

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

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


user@host.domain

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


host.domain!user

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


user@domain

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

メールボックスファイル

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

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

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

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

表 23–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 バージョン 8 より、所有者の別名が存在する場合、グループの別名に送信されるメールの封筒の送信者は、所有者の別名から展開されるアドレスに変更されました。この変更によって、メールエラーは、送信者に返送されるのではなく、別名の所有者に送信されるようになりました。この変更によって、別名に送信されたメールは、別名の所有者から送信されたように見えます。次の別名の書式は、この変更に関連したいくつかの問題に対応します。


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

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

メール別名

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

大きなサイトでは通常、メール別名は、メールボックスの場所を定義します。メール別名を提供することは、複数の部屋を占有する大きな会社の個人のアドレスに部屋番号を含めるようなものです。部屋番号を提供しない場合は、メールは中央アドレスに配信されます。部屋番号がなければ、ビルの内部のどこにメールを配信するかを特定するために余分な労力が必要になります。そして、誤りが発生する可能性も増加します。たとえば、同じ建物に 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 を同じように追加することもできます。メールホストシステムでは、main.cf ファイルもメール構成ファイルとして使用する必要があります。作業手順については、第 22 章「メールサービス (手順)」メールホストを設定する方法 を参照してください。

メールホストとして適切なのは、ローカルエリアネットワーク上のシステムで、電話回線に PPP または UUCP リンクを設定するためのモデムがあるものです。もう 1 つの候補は、ネットワークからグローバルなインターネットネットワークへのルーターとして構成されたシステムです。詳細は、第 25 章「Solaris PPP 4.0 (概要)」第 34 章「UUCP (概要)」、およびSolaris のシステム管理 (IP サービス)』の「ルーターの構成」を参照してください。ローカルネットワークのどのシステムにもモデムがない場合は、システムの 1 つをメールホストに指定します。

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

メールサーバー

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

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

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

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

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

メールクライアント

「メールクライアント」は、メールサーバーでメールを受信し、ローカルの /var/mail のないシステムです。 このような構成は、リモートモードと呼ばれます。リモートモードは、デフォルトでは /etc/mail/subsidiary.cf で使用することができます。

メールクライアントに対応するエントリが /etc/vfstab ファイルに指定されていることを確認する必要があります。 メールサーバーからメールボックスをマウントするためのマウントポイントが、メールクライアントに与えられていることを確認してください。またクライアントの別名の宛先が、クライアント名ではなく、メールサーバーのホスト名になっていることを確認してください。作業手順については、第 22 章「メールサービス (手順)」メールクライアントを設定する方法を参照してください。

メールゲートウェイ

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

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

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

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

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

メールゲートウェイを設定する場合に、必要とするものにもっとも近いゲートウェイ構成ファイルを見つけ、状況に合わせて修正する必要があります。

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

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

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

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

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

名前 

形式 

説明 

aliasadm

ファイル 

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

mail

ファイル 

ユーザーエージェント 

mailcompat

ファイル 

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

mailq

リンク 

/usr/lib/sendmail へのリンク。メールキューを表示するために使用

mailstats

ファイル 

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

mailx

ファイル 

ユーザーエージェント 

mconnect

ファイル 

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

praliases

ファイル 

別名データベースを表示するコマンド。praliases(1) のマニュアルページにあるコンパイルされていない情報を参照

rmail

リンク 

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

vacation

ファイル 

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

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

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

名前 

形式 

説明 

Mail.rc

ファイル 

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

aliases

ファイル 

メール転送情報 

aliases.db

ファイル 

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

aliases.dir

ファイル 

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

aliases.pag

ファイル 

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

mailx.rc

ファイル 

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

main.cf

ファイル 

メインシステム用の構成ファイルの例 

relay-domains

ファイル 

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

sendmail.cf

ファイル 

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

submit.cf

ファイル 

メール送信プログラム (MSP) のための新しい構成ファイル。詳細は、新しい構成ファイル submit.cf を参照

local-host-names

ファイル 

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

helpfile

ファイル 

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

sendmail.pid

ファイル 

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

statistics

ファイル 

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

subsidiary.cf

ファイル 

サブシステム用の構成ファイルの例 

trusted-users

ファイル 

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

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

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

表 23–9 /usr/lib ディレクトリの内容

名前 

形式 

説明 

mail.local

ファイル 

メールボックスにメールを配信するメールプログラム 

sendmail

ファイル 

メール転送エージェントとしても知られるルーティングプログラム 

smrsh

ファイル 

sendmail|program 構文を使用して /var/adm/sm.bin ディレクトリにあるプログラムに対して sendmail を実行できるプログラムを制限するシェルプログラム (sendmail に限定されたシェル)。/var/adm/sm.bin に含める内容については、smrsh(1M) のマニュアルページを参照。有効にするには、この m4 コマンドと FEATURE(`smrsh') を mc ファイルに含める

/usr/lib/mail ディレクトリの内容

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

表 23–10 メールサービスに利用する /usr/lib/mail ディレクトリの内容

名前 

形式 

説明 

README

ファイル 

構成ファイルの説明 

cf

ディレクトリ 

ホストのサイトに依存する、およびサイトに依存しない説明 

cf/main.mc

ファイル 

以前は cf/main-v7sun.mc という名前のファイル 。メインの構成ファイル

cf/makefile

ファイル 

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

cf/submit.mc

ファイル 

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

cf/subsidiary.mc

ファイル 

以前は cf/subsidiary-v7sun.mc という名前のファイル。別のホストから /var/mail を NFS マウントするホストのための構成ファイル

domain

ディレクトリ 

サイトに依存するサブドメインの説明 

domain/generic.m4

ファイル 

Berkeley からの汎用ドメインファイル 

domain/solaris-antispam.m4

ファイル 

sendmail 関数を以前の Solaris 版のようにする変更を伴うドメインファイル。ただし、リレーは完全に無効に設定されるので、ホスト名のない送信者アドレスは拒否され、解決されないドメインは拒否される

domain/solaris-generic.m4

ファイル 

sendmail 関数を以前の Solaris 版のようにする変更を伴うデフォルトドメインファイル

feature

ディレクトリ 

特定のホスト用の特別な機能の定義を含む。機能の詳細な説明は README を参照

m4

ディレクトリ 

サイトに依存しないインクルードファイルを含む 

mailer

ディレクトリ 

localsmtpuucp などのメールプログラムの定義を含む

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 を指定する

sh

ディレクトリ 

m4 構築プロセスと移行補助に使用するシェルスクリプトを含む

sh/check-permissions

ファイル 

include: 別名と .forward ファイルのアクセス権、および正確なアクセス権に必要なこれらの親ディレクトリのパスを確認する

sh/check-hostname

ファイル 

sendmail が完全指定のホスト名を判別できることを確認する

メールサービスに使用するその他のファイル

メールサービスは、その他のいくつかのファイルおよびディレクトリを使用します。これらを表 23–11 に示します。

表 23–11 メールサービスに使用するその他のファイル

名前 

形式 

説明 

sendmailvars.org_dir

テーブル 

sendmailvars ファイルの NIS+ バージョン

/etc/default/sendmail

ファイル 

sendmail の起動スクリプトの環境変数をリストする

/etc/shells

ファイル 

有効なログインシェルをリストする 

/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

ディレクトリ 

マスターデーモンによって配信されるメールの記憶領域  

$OPENWINHOME/bin/mailtool

ファイル 

ウィンドウベースのメールユーザーエージェント 

/var/run/sendmail.pid

ファイル 

リスニングデーモンの PID を表示するファイル 

メールプログラム間の相互作用

メールサービスは以下のプログラムで構成され、図 23–2 のように作用します。

図 23–2 メールプログラム間の相互作用

図。

さらに詳しい図については、sendmail プログラムの機能 を参照してください。

以下に、メールプログラムの相互作用について説明します。

  1. ユーザーは、mailx mailtool などのプログラムを使ってメッセージを送信します。これらのプログラムについては、mailx(1) または mailtool(1) のマニュアルページを参照してください。

  2. メッセージは、そのメッセージを生成したプログラムによって収集され、sendmail デーモンに渡されます。

  3. sendmail デーモンがメッセージのアドレスを識別可能な各部に分割して解析します。sendmail デーモンは、/etc/mail/sendmail.cf という構成ファイルの情報を使ってネットワーク名の構文、別名、転送情報、およびネットワークトポロジを決定します。sendmail はこの情報を使用して、メッセージが受信者に到達する経路を決定します。

  4. sendmail デーモンはメッセージを適切なシステムに渡します。

  5. ローカルシステムの /usr/lib/mail.local プログラムは、メッセージの受信者の /var/mail/username ディレクトリのメールボックスにメールを配信します。

  6. 受信者は、メールが届いたことが通知されるので、mailmailxmailtool などのプログラムを使用してメールを受け取ります。

sendmail プログラム

以下に、 sendmail プログラムの機能の一部を示します。

Solaris オペレーティング環境では、sendmail プログラムをメールルーターとして使用します。 以下に、機能の一部を示します。

sendmail の詳細は、以下のトピックを参照してください。

sendmail とその再ルーティングメカニズム

sendmail プログラムでは、メールルーティングに必要な 3 つのメカニズムをサポートしています。 適切なメカニズムは、変更の種類によって決まります。

さらに、選択する再ルーティングメカニズムによって必要な管理レベルが異なります。次のオプションを考慮してください。

  1. 再ルーティングメカニズムの 1 つは別名です。

    別名を使用すれば、使用するファイルの種類に基づいて、サーバー全体またはネームサービス全体をベースにしてアドレス名をマップできます。

    以下に、ネームサービスの別名の長所と短所を示します。

    • ネームサービス別名ファイルを使用すれば、メール再ルーティングの変更を単一のソースで管理できます。ただし、ネームサービスの別名指定では、再ルーティングの変更を伝達する際に遅延が起こります。

    • 通常、ネームサービスの管理は、特定のシステム管理者グループに制限されます。一般ユーザーは、このファイルを管理しません。

    以下に、サーバー別名ファイルを使用する際の長所と短所を示します。

    • サーバー別名ファイルを使用すれば、指定されたサーバーの root になることができる任意のユーザーが再ルーティングを管理できます。

    • サーバー別名指定は、再ルーティングの変更を伝達する際の遅延はほとんどありません。

    • 変更はローカルサーバーだけに影響します。ほとんどのメールが単一のサーバーに送信される場合は、影響が少なくなります。ただし、この変更を多くのメールサーバーに伝達する必要がある場合は、ネームサービスの別名指定を使用します。

    • 一般ユーザーは、この変更を管理しません。

    詳細は、この章の メール別名ファイルを参照してください。 作業マップについては、第 22 章「メールサービス (手順)」メール別名ファイルの管理 (作業マップ) を参照してください。

  2. 次のメカニズムは、転送です。

    このメカニズムでは、ユーザーがメールの再ルーティングを管理できます。ローカルユーザーは、受信メールを以下の対象に再ルーティングできます。

    • 別のメールボックス

    • 別のメールプログラム

    • 別のメールホスト

    このメカニズムは、.forward ファイルによってサポートされます。.forward ファイルの詳細は、この章の .forward ファイルを参照してください。作業マップについては、第 22 章「メールサービス (手順)」.forward ファイルの管理 (作業マップ)を参照してください。

  3. 最後のメカニズムは、取り込みです。

    このメカニズムでは、root アクセス権を持たないユーザーも別名リストを保守できます。このメカニズムを提供するには、root ユーザーは、サーバー上の別名ファイル内に適切なエントリを作成する必要があります。このエントリが作成されると、ユーザーは必要に応じてメールをルーティングし直すことができるようになります。取り込みの詳細は、この章の /etc/mail/aliases ファイルを参照してください。 作業マップについては、第 22 章「メールサービス (手順)」メール別名ファイルの管理 (作業マップ) を参照してください。

図 23–3 は、sendmail がユーザー別名をどのように使用するかを示します。 /usr/bin/mailx のようなメールを読み取るプログラムは、プログラム自身の別名を持つことができ、それらはメッセージが sendmail に達する前に展開されます。sendmail の別名は、ローカルファイル、NIS、NIS+ など、さまざまなネームサービスソースからのものでもかまいません。検索順序は nsswitch.conf ファイルによって決定されます。nsswitch.conf(4) のマニュアルページを参照してください。

図 23–3 sendmail が別名を使用する方法

この図は、sendmail とその再ルーティングメカニズム (別名指定など) との依存関係を示しています。

sendmail プログラムの機能

sendmail プログラムには、次のような機能があります。

図 23–4 には、sendmail がメールシステムで他のプログラムと相互作用する方法を示します。

図 23–4 sendmail と他のメールプログラムとの対話

この図は、sendmail と SMTP、uucp、vacation、mail.local、mailx などとの相互作用を示しています。

図 23–4 に示すように、ユーザーはメール作成プログラムおよびメール送信プログラムと対話できます。メール送信が依頼されると、メール生成プログラムは sendmail を呼び出し、sendmail は適切なメールプログラムにメッセージを送信します。 発信者の一部はネットワークサーバーであったり、またメールプログラムの一部はネットワーククライアントであるため、sendmail は、インターネットメールゲートウェイとしても使用できます。このプロセスの詳細は、メールプログラム間の相互作用を参照してください。

sendmail 構成ファイル

構成ファイルは、sendmail がその機能を実行する方法を制御します。構成ファイルにより、配信エージェント、アドレスの変換の規則、およびメールヘッダのフォーマットが選択されます。

sendmail プログラムは、/etc/mail/sendmail.cf ファイルの情報を使用して、その機能を実行します。各システムには、/etc/mail ディレクトリにインストールされたデフォルトの sendmail.cf ファイルがあります。メールサーバーまたはメールクライアントのためにデフォルト構成ファイルを編集または変更する必要はありません。カスタマイズされた構成ファイルを必要とするシステムは、メールホストとメールゲートウェイだけです。

Solaris オペレーティング環境には、以下に示すように、/etc/mail ディレクトリに 3 つのデフォルト構成ファイルがあります。

  1. メールホストまたはメールゲートウェイとして使用する 1 つまたは複数のシステムを指定するための、main.cf という名前の構成ファイル

  2. デフォルトの sendmail.cf ファイルのコピーで subsidiary.cf という名前の構成ファイル

  3. デーモンモードの代わりにメール送信プログラムモードで sendmail を実行するために使用する submit.cf という名前の構成ファイル。詳細は、新しい構成ファイル submit.cfを参照

システムで使用する構成ファイルは、メールサービスのシステムの役割によって異なります。

次に、サイトの要求に応じて変更が可能な構成パラメータをいくつか説明します。

メール別名ファイル

別名を保守するには、以下のファイル、マップ、またはテーブルを使用します。

別名を保守する方法は、誰が使用し、誰が変更するかによって決まります。別名のタイプにはそれぞれ固有の形式要件があります。

関連する作業については、第 22 章「メールサービス (手順)」メール別名ファイルの管理 (作業マップ)を参照してください。

.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 プログラムが別名をバイナリ形式で使用できるようにします。作業手順については、第 22 章「メールサービス (手順)」ローカルメール別名ファイルを設定する方法を参照してください。 それ以外の場合、Solaris 管理コンソールの「メーリングリスト」機能を使ってローカルの /etc ファイルに保存されているメール別名を管理できます。

別名を作成できるのは、ローカル名、つまり現在のホスト名に対してだけ、またはホスト名は指定できません。 たとえば、システム saturn 上にメールボックスを持っているユーザー ignatz に対する別名エントリは、以下のエントリを /etc/mail/aliases ファイル内に持っています。


ignatz: ignatz@saturn

各メールサーバーに管理アカウントを作成する必要があります。管理アカウントを作成するには、メールサーバーのメールボックスを root に割り当て、root のエントリを /etc/mail/aliases ファイルに追加します。たとえば、システム saturn がメールボックスサーバーの場合は、エントリ root: sysadmin@saturn/etc/mail/aliases ファイルに追加します。

通常は、root ユーザーだけがこのファイルを編集できます。ただし、Administration を使用する場合は、sysadmin グループであるグループ 14 のすべてのユーザーが、ローカルファイルを変更できます。または、以下のエントリを作成します。


aliasname: :include:/path/aliasfile

aliasname は、ユーザーがメールを送信するときに使用する名前であり、/path/aliasfile は別名リストを含むファイルへの完全パスになります。別名ファイルには、各行に 1 つの電子メールエントリを入れ、その他の表記は付けないでください。


user1@host1
user2@host2

/etc/mail/aliases に追加のメールファイルを定義して、ログやバックアップコピーの管理もできます。以下のエントリでは、filenamealiasname に送信されるすべてのメールを格納します。


aliasname: /home/backup/filename

また、メールを他のプロセスにルーティングすることもできます。次の例のように入力すると、メールメッセージのコピーが filename 内に格納され、コピーが出力されます。


aliasname: "|tee -a /home/backup/filename |lp"

作業マップについては、第 22 章「メールサービス (手順)」メール別名ファイルの管理 (作業マップ) を参照してください。

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 ファイルを含むサーバー用のホスト名です。

作業手順については、第 22 章「メールサービス (手順)」NIS mail.aliases マップを設定する方法を参照してください。

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"]

表 23–12 に、NIS+ mail_aliases テーブルの 4 つの列を示します。

表 23–12 NIS+ mail_aliases テーブルの列

列 

説明 

alias

別名の名前  

expansion

sendmail/etc/mail/aliases ファイルに現れる別名の値または別名のリスト

options

今後の使用のために予約された列 

comments

個々の別名のコメントのための列 

NIS+ mail_aliases テーブルには、すべてのメールクライアントのエントリを含めてください。NIS+ aliases テーブルでは、aliasadm コマンドで、エントリの表示、作成、変更、および削除ができます。aliasadm コマンドを使用するには、aliases テーブルを所有する NIS+ グループのメンバーでなければなりません。作業手順については、第 22 章「メールサービス (手順)」NIS+ mail_aliases テーブルの別名エントリを管理する方法を参照してください。 Solaris 管理コンソールの「メーリングリスト」機能を使用して NIS+ メール別名を管理することもできます。


注 –

新規の NIS+ aliases テーブルを作成する場合は、エントリを作成する前にテーブルを初期設定する必要があります。テーブルが存在するときは、初期設定は不要です。


.forward ファイル

ホームディレクトリに .forward ファイルを作成すれば、sendmail およびその他のプログラムは、メールのリダイレクトや送信にこのファイルを使用できます。以下の節を参照してください。

作業マップについては、第 22 章「メールサービス (手順)」.forward ファイルの管理 (作業マップ)を参照してください。

回避すべき状況

以下に、容易に回避または修復できる状況を示します。

.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 とネームサービスの相互作用について説明します。詳細は、以下のトピックを参照してください。

関連する作業については、第 22 章「メールサービス (手順)」sendmail で DNS を使用する方法または メール別名ファイルの管理 (作業マップ)を参照してください。

sendmail.cf とメールドメイン

標準の sendmail.cf ファイルは、メールドメインを使ってメールを直接配信するか、あるいはメールホストを経由して配信するかを決定します。ドメイン内メールは直接 SMTP 接続経由で配信され、ドメイン間メールはメールホストに送られます。

セキュリティの高いネットワークでは、ほんの少数の選ばれたホストだけが、外部宛てのパケットを生成する権限を与えられています。ホストがメールドメインの外部のリモートホストの IP アドレスを持っている場合も、SMTP 接続の確立は保証されません。標準の sendmail.cf では次のことを仮定しています。

このように仮定すると、ドメイン間メールの配信または転送はメールホスト側の責任です。

sendmail とネームサービス

sendmail は各種の要件をネームサービスに課します。これらの要件の理解を深めるために、この節では、まずメールドメインからネームサービスドメインへの関係について説明します。次に個々の要件について説明します。以下を参照してください。

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

メールドメイン名はネームサービスドメイン名の接尾辞の 1 つでなければなりません。たとえば、ネームサービスのドメイン名が「A.B.C.D」ならば、メールドメイン名は次のうちのいずれかです。

メールドメイン名は、最初に設定されたときには、多くの場合ネームサービスドメインと同じになります。ネットワークが大きくなれば、ネームサービスドメインを小さく分割してネームサービスを管理しやすくすることができます。ただし、メールドメインは、一貫した別名を提供するために分割されないまま残ることがあります。

ホストネームサービスデータ

ここでは、sendmail がネームサービスに必要とする要件について説明します。

ネームサービスにおけるホストテーブルまたはマップは、次の 3 種類の gethostbyname() による問い合わせをサポートするように設定しなければなりません。

ネームサービス内に有効な sendmail サービスを確立するために、ホストネームサービスに追加された以下の 2 つの規則に従う必要があります。

gethostbyname() 関数については、gethostbyname(3NSL) のマニュアルページを参照してください。

sendmail と NIS との相互作用

以下に、sendmail と NIS との相互作用について説明し、ガイドラインを示します。

作業手順については、第 22 章「メールサービス (手順)」メール別名ファイルの管理 (作業マップ)を参照してください。

sendmail と NIS および DNS との相互作用

以下に、sendmail と NIS および DNS との相互作用について説明し、ガイドラインを示します。

作業手順については、第 22 章「メールサービス (手順)」sendmail で DNS を使用する方法メール別名ファイルの管理 (作業マップ) 参照してください。

sendmail と NIS+ との相互作用

以下に、sendmail と NIS+ との相互作用について説明し、ガイドラインを示します。

作業手順については、第 22 章「メールサービス (手順)」メール別名ファイルの管理 (作業マップ)を参照してください。

sendmail と NIS+ および DNS との相互作用

以下に、sendmail と NIS+ および DNS との相互作用について説明し、ガイドラインを示します。

作業手順については、第 22 章「メールサービス (手順)」メール別名ファイルの管理 (作業マップ)sendmail で DNS を使用する方法を参照してください。

第 24 章 メールサービスの新機能 (リファレンス)

第 21 章「メールサービス (概要)」では、メールサービスのコンポーネントの概要および一般的なメール構成について説明しています。第 22 章「メールサービス (手順)」では、標準の構成ファイルを使用して、電子メールシステムを設定および管理する方法について説明しています。第 23 章「メールサービス (リファレンス)」では、メールサービスのコンポーネントについて、詳しく説明しています。 また、メールサービスのプログラムとファイル、メールルーティング処理、ネームサービスを使った sendmail の対話式操作についても説明しています。この章では、今回の Solaris 9 リリースに付属している sendmail バージョン 8.12 の新機能について説明します。 mail.localmailstats、および makemap の変更点についての説明もあります。 また、この章では、新しい保守ユーティティ editmap についても説明します。 特定のトピックについては、下記のページを参照してください。

この章で扱っていないトピックについては、sendmail(1M)mail.local(1M)mailstats(1)makemap(1M)、および editmap(1M) のマニュアルページを参照してください。

sendmail の変更点

この章では、次のトピックについて説明します。

新しい構成ファイル submit.cf

sendmail バージョン 8.12 には、新しい構成ファイル /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 の機能の変更

submit.cf が追加されたため、次の機能が変更されました。

コマンド行の新しいオプションまたは推奨されないオプション

次の表では、sendmail の新しいコマンド行オプションについて説明します。 コマンド行の他のオプションについては、sendmail(1M) のマニュアルページを参照してください。

表 24–1 sendmail のコマンド行の新しいオプション

オプション 

説明  

-Ac

オペレーションモードが新しいメールの差し出し依頼を示していない場合でも、構成ファイル submit.cf を使用する。 submit.cf の詳細については、新しい構成ファイル submit.cf を参照

-Am

オペレーションモードが新しいメールの差し出し依頼を示している場合でも、構成ファイル sendmail.cf を使用する。 詳細は、新しい構成ファイル 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 とともに配布しているリリースノートで説明しているように、このオプションは、バージョン 8.12 では使用できない。メールユーザーエージェントでは、引数 -G を使用する必要がある

構成ファイルの新しい構成オプションと改訂された構成オプション、および関連トピック

この節では、構成ファイルの新しいオプションと改訂されたオプションについて、また次の関連トピックについて説明しています。

これらのオプションを宣言する場合は、次の構文のどれかを使用します。


O OptionName=argument          # 構成ファイル
-OOptionName=argument          # コマンド行
define(`m4Name',argument)     # m4 を使った構成記述

新しい sendmail.cf ファイルを構築する必要がある場合は、第 22 章「メールサービス (手順)」sendmail.cf 構成ファイルの構築 (手順) を参照してください。

次の表では、sendmail の新しいオプションおよび改訂されたオプションについて説明しています。

表 24–2 sendmail の新しいオプションおよび改訂されたオプション

オプション 

説明 

BadRcptThrottle

m4 名 : confBAD_RCPT_THROTTLE

引数 : 数値

この新しいオプションを使用して、受信者のしきい値が拒否された後、SMTP エンベロープ内の受信者を承認する率を制限する 

ClientPortOptions

詳細については、新しい ClientPortOptions オプション を参照

ConnectionRateThrottle

m4 名 : confCONNECTION_RATE_THROTTLE

引数 : 数値

ConnectionRateThrottle オプションを使用して、各デーモンへの合計接続数ではなく、1 秒あたりの接続数を制限する

ControlSocketName

m4 名 : confCONTROL_SOCKET_NAME

引数 : ファイル名。推奨ソケット名は /var/spool/mqueue/.smcontrol。セキュリティを向上させるために、この UNIX ドメインソケットを、root だけがアクセスできるディレクトリに置く

この新しいオプションを設定すると、デーモン管理用の制御ソケットが作成される。このオプションを使用して、指定した名前のソケットを使って実行した sendmail デーモンの状態を、外部のプログラムから制御したり照会したりすることができる。このソケットは、INN ニュースサーバーに対する ctlinnd インタフェースに似ている。このオプションを設定しないと、制御ソケットは使用できない

DaemonPortOptions

詳細については、DaemonPortOptions オプションの変更点を参照

DataFileBufferSize

m4 名 : confDF_BUFFER_SIZE

引数 : 数値

この新しいオプションを指定すると、ディスクベースのファイルを使用する前にメモリーに蓄積できるデータ (df) ファイルの最大サイズを、バイトで制御できる。 デフォルトは 4096 バイト。Solaris オペレーティング環境のデフォルトを変更する必要はない

DeadLetterDrop

m4 名 : confDEAD_LETTER_DROP

引数 : ファイル名

この新しいオプションを使用して、システム全体のファイル dead.letter の場所を定義する。前のバージョンでは、このファイルは /usr/tmp/dead.letter に固定されていた。このオプションを設定する必要はない

DelayLA

m4 名 : confDELAY_LA

引数 : 数値

この新しいオプションに 0 より大きな値を設定すると、次のように動作する  

平均負荷率が指定値を超えると、接続を 1 秒ずつ遅らせる 

ほとんどの SMTP コマンドを 1 秒ずつ遅れて実行する 

デフォルト値が 0 であるため、このオプションを設定しないと sendmail の動作は変更されない

DeliverByMin

m4 名 : confDELIVER_BY_MIN

引数 : 時間

この新しいオプションを使用して、クライアントは、RFC 2852 の「Deliver By SMTP Service Extension」で指定されているように、電子メールメッセージを配信する際の最短時間を指定できる 

time を 0 に設定すると、時間は表示されない 

time を 0 より小さくすると、拡張は利用できない 

time を 0 より大きくすると、その拡張した時間が EHLO のキーワードである DELIVERBY の最短時間として表示される

DirectSubmissionModifiers

m4 名 : confDIRECT_SUBMISSION_MODIFIERS

引数 : 修飾子

この新しいオプションにより、直接の実行依頼 (コマンド行) の ${daemon_flags} を定義する。このオプションを設定しない場合、${daemon_flags} の値はオプション -G を使用すると CC f に、使用しないと c u になる

DontBlameSendmail

新たに、次の引数を使用できる 

引数 NonRootSafeAddr が追加された。sendmail.forward プログラムを実行したり、所有者としてそのファイルに配信する権限がない場合には、アドレスは「安全ではない」とマークされる。 また、RunAsUser を設定すると、プログラムを使用したり、.forward プログラムのファイルに配信したりすることができない。 これらの問題を解決するには、NonRootSafeAddr を使用する

DoubleBounceAddress

m4 名 : confDOUBLE_BOUNCE_ADDRESS

引数 : アドレス。デフォルトは、postmaster

sendmail がエラーメッセージを送信する際にエラーが発生した場合には、sendmail は、このオプションの引数で指定したアドレスに、「double-bounced」エラーメッセージを送信する

FallBackMXhost

m4 名 : confFALLBACK_MX

引数 : 完全指定ドメイン名 

このオプションを使用して、MX レコードを参照することができる。MX レコードを参照しない前のバージョンのオプションを使用するには、名前を角括弧で括って指定する 

FastSplit

m4 名 : confFAST_SPLIT

引数 : 数値。デフォルト値は 1

この新しいオプションを指定すると、次の動作を実行する 

このオプションを 0 より大きな値に設定する場合、アドレスをソートする場合、最初の MX 参照を行わない。そのため、エンベロープをより高速に分割できる 

メールをコマンド行から送信する場合は、この値により、エンベロープを配信するのに使用するプロセスの数を制限できる 

さらに多くのエンベロープが作成されると、エンベロープはいったんキューに置かれ、キューが実行されると解釈処理される 

LDAPDefaultSpec

m4 名 : confLDAP_DEFAULT_SPEC

引数 : 適切に定義されたクラス指定。たとえば、-hhost-pport-dbind DN など

この新しいオプションを使用して、LDAP マップのデフォルトのマップ仕様を指定できる。 K コマンドを使って個別のマップ仕様を作成しないかぎり、ここで行われたデフォルトの設定が、すべての LDAP マップに使用される。このオプションを設定してから、LDAP マップを定義する

MailboxDatabase

m4 名 : confMAILBOX_DATABASE

引数 : デフォルト値は pw。これは、getpwnam() を使用する。他の値を使用することはできない

この新しいオプションにより、ローカルな受信者を確認するのに使用されるメールボックスデータベースのタイプを指定できる  

MaxHeadersLength

m4 名 : confMAX_HEADERS_LENGTH

引数 : 数値

このオプションにより、全ヘッダーの合計した最大の長さを指定できる。また、このオプションを使用して、サービス拒否害攻撃を防止できる。 デフォルト値は 32768。 16384 より小さい値を使用すると、警告が発行される。 Solaris オペレーティング環境のデフォルト値を変更する必要はない  

MaxMimeHeaderLength

m4 名 : confMAX_MIME_HEADER_LENGTH

引数 : 数値

このオプションにより、特定の MIME ヘッダ ーフィールド値の最大の長さを、文字数 x に設定できる。また、ヘッダー内のパラメータについては、y の最大の長さを指定できる。値を結合すると、「x/y」のようになる。y を指定しない場合には、x の半分の値が使用される。 デフォルト値は 0 であるため、値を指定しないと、確認が実行されない。 このオプションは、メールユーザーエージェントをバッファーオーバーフロー攻撃から保護する目的で提供されている。推奨値の範囲は、256/128 から 1024/256。128/40 より小さい値を使用すると、警告が発行される。

MaxQueueChildren

m4 名 : confMAX_QUEUE_CHILDREN

引数 : 数値

この新しいコマンドにより、同時にアクティブになるキューランナー処理の数を引数で指定した値に制限できる。このオプションを使用すると、キューの処理時に使用されるシステム資源を制限できる。複数のキューグループにおけるキューランナーの合計数が定義した引数を超えると、残りのキューグループは、後で実行される 

MaxRecipientsPerMessage

m4 名 : confMAX_RCPTS_PER_MESSAGE

引数 : 数値

このオプションを設定すると、SMTP エンベロープ内の受信者が指定した数を超えないようにする。最小の引数は 100。このオプションは、コマンド行からも、構成ファイルからも宣言できる。ただし、通常のユーザーは、コマンド行からこのオプションを設定し、sendmail -bs を使って送信したメッセージの上書きを有効にすることができる。この場合でも、sendmail は、その root 権限を放棄しない

MaxRunnersPerQueue

m4 名 : confMAX_RUNNERS_PER_QUEUE

引数 : 数値。デフォルト値は 1。リソースについてよく考慮し、この値を高く設定しないように注意する

この新しいオプションにより、1 キューグループあたりのキューランナーの最大数を指定できる。複数のキューランナーは、キューグループのメッセージを並行処理する。この動作は、前のメッセージ処理が原因で次のメッセージの処理が遅れる可能性がある場合に便利である 

NiceQueueRun

m4 名 : confNICE_QUEUE_RUN

引数 : 数値

この新しいオプションにより、キューランナーの優先順位を設定できる。nice(1) のマニュアルページを参照

PidFile

m4 名 : confPID_file

引数 : PidFile オプションおよび ProcessTitlePrefix オプションのその他の引数 を参照

この新しいオプションにより、pid ファイルの場所を定義できる。 ファイルを開く前に、そのファイル名がマクロで展開される。デフォルトは /var/run/sendmail.pid

PrivacyOptions

詳細については、PrivacyOptions オプションの変更点 を参照

ProcessTitlePrefix

m4 名 : confPROCESS_TITLE_PREFIX

引数 : PidFile オプションおよび ProcessTitlePrefix オプションのその他の引数 を参照

この新しいオプションにより、/usr/ucb/ps auxww にリストされるプロセスのタイトルについて、接頭辞の列を指定できる。この文字列はマクロで処理される。Solaris オペレーティング環境のデフォルト値を変更する必要はない

QueueFileMode

m4 名 : confQUEUE_FILE_MODE

引数 : 数値

この新しいオプションを使用すると、キューファイルのデフォルトアクセス権を 8 進数で指定できる。このオプションを設定しないと、sendmail0600 を使用する。ただし、オプションの実ユーザー ID と実行ユーザー ID が異なる場合には、sendmail0644 を使用する

QueueLA

m4 名 : confQUEUE_LA

引数 : 数値

デフォルト値は、8 からシステム起動時にオンラインであるプロセッサ数の 8 倍に変更された。 単一プロセッサマシンでは、このデフォルト値の変更による影響はない。 この値を変更するとデフォルト値が無効になり、プロセッサ数を考慮しなくなる。 そのため、値を変更することによる影響について、よく理解する必要がある 

QueueSortOrder

m4 名 : confQUEUE_SORT_ORDER

このオプションにより、キューのソートに使用するアルゴリズムを設定する。デフォルト値は priority であり、キューをメッセージの優先順位でソートする。 次の変更に注意してください。

host の引数は、ホスト名を逆にしてからソートを実行する。つまり、ドメインをグループ化して、キューを同時に実行する。このように改良されたため、接続キャッシュがある場合には、それをより有効に使用できる

新しい引数 filename は、キューをファイル名でソートする。この動作によって、キューを実行する準備をする際に、各キューにあるファイルを開いたり読み込んだりすることを避けることができる

新しい引数 modification は、キューを変更日時でソートし、qf ファイルのエントリを古い順に実行する

新しい引数 random は、キューを無作為にソートする。こうすると、複数のキューランナーを手動で開始する際に、回線争奪を避けることができる

詳細については、sendmail(1M) マニュアルページの「QueueSortOrder」を参照

RefuseLA

m4 名 : confREFUSE_LA

引数 : 数値

デフォルト値は、12 からシステム起動時にオンラインであるプロセッサ数の 12 倍に変更された。 単一プロセッサマシンでは、このデフォルト値の変更による影響はない。 この値を変更するとデフォルト値が無効になり、プロセッサ数を考慮しなくなる。 そのため、値を変更することによる影響について、よく理解する必要がある 

ResolverOptions

このオプションについては、2 つの点が変更された 

ホスト名を正規化しようとする時、不具合が発生したネームサーバーが IPv6 T_AAAA 参照について一時障害メッセージ SERVFAIL を返すことがある。新しい引数 WorkAroundBrokenAAAA を使用して、このような動作を避けることができる

また、引数 RES_USE_INET6 は、新しいフラグ use_inet6 を使って制御できる。詳細は、resolver(3RESOLV) のマニュアルページを参照

RrtImpliesDsn

m4 名 : confRRT_IMPLIES_DSN

引数 :true または false

この新しいオプションを設定すると、「Return-Receipt-To:」ヘッダーによって DSN (Delivery Status Notification) が要求され、エンベロープの送信側に DNS が送信される。DSN はヘッダーで指定されているアドレスには送信されない 

SendMimeErrors

m4 名 : confMIME_FORMAT_ERRORS

引数 : true または false

デフォルトは true

SharedMemoryKey

m4 名 : confSHARED_MEMORY_KEY

引数 : 数値

この新しいオプションを使用すると、共有メモリーがある場合に、それを使ってキューのファイルシステム用の容量を保存できる。このオプションにより、空き容量を確認するシステムコールの数を最小限にすることができる 

SuperSafe

m4 名 : confSAFE_QUEUE

引数 : truefalse、または interactive。デフォルト値および推奨値は truefalse は使用しないこと

このオプションを true に設定すると、キューのファイルをすぐに配信する場合でも、それらは常にインスタンス化される。 interactiveDeliveryMode=i を同時に使用して、このモード用に、コード実行パスで重複している同期コールをスキップすることができる

Timeout

詳細については、Timeout オプションの変更点 を参照

TrustedUser

m4 名 : confTRUSTED_USER

引数 : ユーザー名またはユーザー ID の数値

この新しいオプションを使用して、root の代わりに重要なファイルを所有するユーザー名を指定することができる。このオプションを設定すると、そのユーザーは、生成された別名データベースと、設定した場合には制御ソケットを自動的に所有する。このオプションには、HASFCHOWN を設定する必要がある。HASFCHOWN については、sendmail のコンパイルに使用できるフラグと使用できないフラグ を参照

TrustedUserroot、およびクラス t ($=t) のユーザーだけが、別名マップを構築できる

UseMSP

m4 名 : confUSE_MSP

引数 : true または falseデフォルトは、false

この新しいオプションにより、グループが sendmail バイナリのグループ ID セットグループと同じ場合には、キューファイルをそのグループについて書き込み可能にすることが許可される。 submit.cf では、このオプションを true に設定する必要がある

XscriptFileBufferSize

m4 名 : confXF_BUFFER_SIZE

引数 : 数値

この新しいオプションを指定すると、ディスクベースのファイルを使用する前にメモリーに蓄積できるトランスクリプト (xf) ファイルの最大サイズを、バイトで制御できる。 デフォルトは 4096 バイト。Solaris オペレーティング環境のデフォルトを変更する必要はない

sendmail の構成ファイルにおける推奨されないオプションまたはサポートされていないオプション

構成ファイルで推奨されないオプションについては、次の表を参照してください。この表には AutoRebuildAliases オプションが記載されていますが、このオプションは、sendmail バージョン 8.12 には含まれていません。

表 24–3 sendmail の構成ファイルにおける推奨されないオプションまたはサポートされていないオプション

オプション 

説明  

AutoRebuildAliases

このオプションを設定するとサービス妨害攻撃が実行されることがあるため、このオプションは sendmail バージョン 8.12 には含まれていない。ftp://ftp.sendmail.orgsendmail とともに配布しているリリースノートを参照。 別名ファイルを構築中に、sendmail の処理を停止して、そのファイルを矛盾した状態のままにすることができる

さらに、AutoRebuildAliases を使用できないため、/etc/mail/aliases に加えた変更を適用するには、newaliases を手動で実行する必要がある。また、このバージョンでは、sendmailsetuid root ではないため、root だけが newaliases を実行できる

MeToo

このオプションのデフォルトは True になっており、その使用を推奨されていない ftp://ftp.sendmail.orgsendmail とともに配布しているリリースノートを参照

UnsafeGroupWrites

このオプションは推奨されていない。 必要に応じて、GroupWritableForwardFileSafe および GroupWritableIncludeFileSafe の引数を DontBlameSendmail オプションに使用する必要がある

UseErrorsTo

このオプションは推奨されていない。 また、このオプションは RFC 1123 に違反するため、使用しないこと 

新しい ClientPortOptions オプション

新しく追加された ClientPortOptions オプションは発信接続に使用します。このオプションは、DaemonPortOptions オプションに似ています。このオプションにより、クライアントの SMTP オプションが設定されます。クライアントの SMTP オプションは、一連の key=value ペアです。 このオプションを宣言するには、次の構文のどれかを使用します。 フォーマットのために、これらの例には 2 組のペアが含まれています。 ただし、1 組以上のペアを適用できます。


O ClientPortOptions=pair,pair              # 構成ファイル
-OClientPortOptions=pair,pair              # コマンド行
define(`confCLIENT_OPTIONS',`pair,pair')   # m4 を使った構成記述

新しい sendmail.cf ファイルを構築する必要がある場合は、第 22 章「メールサービス (手順)」sendmail.cf 構成ファイルの構築 (手順) を参照してください。

次の表では、このオプションの新しいキーについて説明しています。

表 24–4 ClientPortOptions の新しいキー

キー 

説明 

Addr

アドレスマスクを指定する。 この値は、ドット表記した数値のアドレスにすることも、ネットワーク名にすることもできる。このペアが省略されると、デフォルトは INADDR_ANY となり、どのネットワークからの接続も受け入れる

Family

アドレスファミリーを指定する。 AF_INET のキーのデフォルトは inet。 他の値は、AF_INET6 には inet6AF_ISO には isoAF_NS には nsAF_CCITT には x.25 である

Listen

待機キューのサイズを指定する。 キーのデフォルトは 10。 Solaris オペレーティング環境のデフォルトを変更する必要はない

Port

待機ポートの名前および番号を指定する。 キーのデフォルトは smtp

RcvBufSize

TCP/IP 送信バッファーのサイズを指定する。キーにはデフォルト値がないため、サイズが自動的に設定されることはない。このオプションを 0 より大きな値に設定すると、その値が使用される。Solaris オペレーティング環境では、このバッファーのサイズを制限する必要はない 

Modifier

次のような sendmail のフラグを指定する

h フラグは、HELO または EHLO コマンドに、送信インタフェースアドレスに対応する名前を使用する。これは、その名前が接続パラメータで選択されたものであっても、デフォルトのものであっても同様である

A フラグは、AUTH を無効にする。このフラグは、DaemonPortOptionsModifier キーに使用できる。DaemonPortOptions オプションの変更点 を参照

S フラグは、電子メールの配信中または受信中に、STARTTLS を使用できないようにしたり、それを提供したりしないようにする

DaemonPortOptions オプションの変更点

次の表では、新しい機能について説明しています。

このオプションを宣言するには、次の構文のどれかを使用します。 この例では、pairkey=value を示します。フォーマットのために、これらの例には 2 組のペアが含まれています。 ただし、1 組以上のペアを適用できます。


O DaemonPortOptions=pair,pair              # 構成ファイル
-ODaemonPortOptions=pair,pair              # コマンド行
define(`confDAEMON_OPTIONS',`pair,pair')   # m4 を使った構成記述 

注 –

セキュリティのリスクを少なくするために、このオプションをコマンド行から設定すると、sendmail はスーパーユーザーアクセス権を放棄します。


新しい sendmail.cf ファイルを構築する必要がある場合は、第 22 章「メールサービス (手順)」sendmail.cf 構成ファイルの構築 (手順) を参照してください。

次の表では、DaemonPortOptions オプションの新しいキーおよび改訂されたキーについて説明しています。

表 24–5 DaemonPortOptions の新しいキーおよび改訂されたキー

キー 

説明 

Name

この新しいキーは、ユーザーが定義可能な sendmail の名前を指定する。このキーは、エラーメッセージおよびログに使用する。デフォルトは、MTA

Modifier

この新しいキーは、sendmail の値を指定する。この値は、区切り記号なしで、順番にリストすることができる。値のリストについては、表 24–6 を参照

Family

DaemonPortOptions オプションで、Family を指定しないかぎり、inet だけがデフォルトとなる。また、IPv6 ユーザーが、IPv6 インタフェースに対しても待機するには、Family=inet6 設定を DaemonPortOptions オプションに追加して、追加ソケットを sendmail.cf に設定する

次の表では、新しい Modifier キーの値について説明しています。

表 24–6 新しい Modifier キーの値

値 

説明  

A

Modifier 値を a にして、AUTH を無効にする

ClientPortOptionsModifier キーに使用できる。 新しい ClientPortOptions オプション を参照

C

ホスト名の正規化を実行しない 

E

ETRN コマンドを不許可にする

O

障害が発生したら、ソケットを無視する 

S

電子メールの配信中または受信中に、STARTTLS を使用できないようにしたり、それを提供したりしないようにする

ClientPortOptionsModifier キーに使用できる

a

認証を要求する 

b

メールを受信するインタフェースに結合する 

c

ホスト名の正規化を実行する。この値は、構成ファイルの宣言でのみ使用する  

f

完全指定ホスト名を要求する。この値は、構成ファイルの宣言でのみ使用する  

h

送信 HELO コマンドに、インタフェース名を使用する

u

修飾されていないアドレスを使用する。この値は、構成ファイルの宣言でのみ使用する 

PidFile オプションおよび ProcessTitlePrefix オプションのその他の引数

次の表では、PidFile オプションおよび ProcessTitlePrefix オプションにおけるマクロ処理の引数について説明します。これらのオプションについては、表 24–2 を参照してください。

表 24–7 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 など) 

PrivacyOptions オプションの変更点

次の表では、PrivacyOptions (popt) の新しい引数および改訂された引数を説明しています。このオプションは、sendmail がその root 権限を放棄することなく、コマンド行から宣言できます。この sendmail オプションを宣言するには、次の構文のどれかを使用します。


O PrivacyOptions=argument                # 構成ファイル
-OPrivacyOptions=argument                # コマンド行
define(`confPRIVACY_FLAGS',`argument')   # m4 を使った構成記述

新しい sendmail.cf ファイルを構築する必要がある場合は、第 22 章「メールサービス (手順)」sendmail.cf 構成ファイルの構築 (手順) を参照してください。

次の表では、PrivacyOptions オプションの新しい引数および改訂された引数について説明しています。

表 24–8 PrivacyOptions の新しい引数および改訂された引数

引数 

説明 

goaway

この引数には、フラグ noetrnrestrictmailqrestrictqrunrestrictexpandnobodyreturn、および noreceipts は使用できない

nobodyreturn

この引数は、元のメッセージの本文を DNS (Delivery Status Notifications) に含めないように、sendmail に指示する

noreceipts

この引数を設定すると、DSN (Delivery Status Notifications) が通知されない 

restrictexpand

この引数は、root でも TrustedUser でもないユーザーが -bv オプションを指定した場合に、権限を解除するように sendmail に指示する。ユーザーは、.forward ファイルまたは :include: ファイルなどの非公開の別名を読み込むことができない。 また、この引数は、コマンド行オプションの -v を無効にする

Timeout オプションの変更点

次の表では、Timeout オプションの変更点について説明しています。具体的に言うと、この sendmail オプションには、ident における新しいキーワードおよび新しい値があります。Solaris オペレーティング環境では、この表に表示されているキーワードのデフォルト値を変更する必要はありません。ただし、変更する場合には、keyword=value の構文を使用してください。この value は、時間の間隔です。次の例を参照してください。


O Timeout.keyword=value   # 構成ファイル
-OTimeout.keyword=value   # コマンド行
define(`m4_name', value) # m4 を使った構成記述

新しい sendmail.cf ファイルを構築する必要がある場合は、第 22 章「メールサービス (手順)」sendmail.cf 構成ファイルの構築 (手順) を参照してください。


注 –

セキュリティのリスクを少なくするために、このオプションをコマンド行から設定すると、sendmail はスーパーユーザーアクセス権を放棄します。


表 24–9 Timeout の新しい設定および改訂された設定

キーワード 

デフォルト値 

説明 

aconnect

0

m4 名 : confTO_ACONNECT

1 回の配信について、すべての接続が成功するまでの合計時間を制限する。最大値は指定されていない 

control

2m

m4 名 : confTO_CONTROL

制御ソケットの要求を完了するまでにかかる合計時間を制限する 

ident

5s

m4 名 : confTO_IDENT

デフォルトでは、30 秒ではなく 5 秒。IDENT パケットを欠落させるサイトへのメール送信が原因で発生する通常の遅延を防止する。最大値は指定されていない

lhlo

2m

m4 名 : confTO_LHLO

LMTP LHLO コマンドからの応答を待つ時間を制限する。最大値は指定されていない

queuereturn

5d

m4 名 : confTO_QUEUERETURN

now を含める。こうすると、キューにあるエントリを配信しないで、すぐに戻すことができる

resolver.retrans

状況により異なる

m4 名 : confTO_RESOLVER_RETRANS

リゾルバによる再伝送の間隔を秒で指定する。この間隔は、resolver.retrans.first および resolver.retrans.normal に適用される

resolver.retrans.first

状況により異なる

m4 名 : confTO_RESOLVER_RETRANS_FIRST

リゾルバが、メッセージをはじめて配信する際の再送の間隔を秒で設定する 

resolver.retrans.normal

状況により異なる

m4 名 : confTO_RESOLVER_RETRANS_NORMAL

リゾルバが、最初のメッセージ配信を除く、すべての参照を実行する際の再伝送の間隔を指定する 

resolver.retry

状況により異なる

m4 名 : confTO_RESOLVER_RETRY

リゾルバクエリーを再送する回数を設定する。この回数は、Timeout.resolver.retry.first および Timeout.resolver.retry.normal に適用される

resolver.retry.first

状況により異なる

m4 名 : confTO_RESOLVER_RETRY_FIRST

メッセージをはじめて配信する際にリゾルバクエリーを再送する回数を設定する 

resolver.retry.normal

状況により異なる

m4 名 : confTO_RESOLVER_RETRY_NORMAL

最初のメッセージ配信を除く、すべてのリゾルバ参照を実行する際に、リゾルバクエリーを再送する回数を設定する 

sendmail に新しく定義されたマクロ

次の表では、sendmail プログラムで使用するための新しいマクロについて説明しています。マクロの値は、内部で割り当てられています。詳細は、sendmail(1M) のマニュアルページを参照してください。

表 24–10 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 については、表 24–14 を参照

${nrcpts}

妥当性検査を行った受信者の数を保持する  

${ntries}

配信を試みた回数を保持する 

${rcpt_mailer} ${rcpt_host}${rcpt_addr}${mail_mailer}${mail_host}、および${mail_addr}

引数 RCPT および MAIL を構文解析した結果を保持する。つまり、メール配信エージェント ($# mailer)、ホスト ($@host)、およびユーザー ($:addr) から解釈処理された RHS (Right-Hand Side) トリプレットを保持する

sendmail 構成ファイルを構築するのに使用する新しいマクロ

この節では、以下について説明します。

表 24–11 sendmail 構成ファイルを構築するのに使用する新しいマクロ

マクロ 

説明  

LOCAL_MAILER_EOL

ローカルメールプログラムの行末を示すデフォルト文字列を置きかえる 

LOCAL_MAILER_FLAGS

デフォルトでは、Return-Path: ヘッダを追加する

MAIL_SETTINGS_DIR

メール設定ディレクトリのパスを格納する (末尾のスラッシュを含む)  

MODIFY_MAILER_FLAGS

*_MAILER_FLAGS を拡張する。このマクロは、フラグを設定、追加、または削除する

RELAY_MAILER_FLAGS

リレーメールプログラムの追加フラグを定義する 

新しい MAX マクロ

次の新しいマクロを使用して、受け入れ可能なコマンドを最大数設定し、sendmail による配信の遅れを防止することができます。これらの MAX マクロは、コンパイル時に設定できます。次の表にある最大値は、現在のデフォルト値でもあります。

表 24–12 新しい MAX マクロ

マクロ 

最大値 

各マクロが確認するコマンド 

MAXBADCOMMANDS

25

未知のコマンド 

MAXNOOPCOMMANDS

20 

NOOPVERBONEX XUSR

MAXHELOCOMMANDS

HELOEHLO

MAXVRFYCOMMANDS

VRFYEXPN

MAXETRNCOMMANDS

ETRN


注 –

マクロによる確認を無効にするには、マクロの値を 0 に設定します。


sendmail における新しい m4 構成マクロおよび改訂された m4 構成マクロ

この節では、sendmail における新しい m4 構成マクロおよび改訂された m4 構成マクロを、表を使って説明します。これらのマクロを宣言するには、次の構文を使用します。


symbolic_name(`value')

新しい sendmail.cf ファイルを構築する必要がある場合は、第 22 章「メールサービス (手順)」sendmail.cf 構成ファイルの構築 (手順) を参照してください。

表 24–13 sendmail における新しい m4 構成マクロおよび改訂された m4 構成マクロ

m4 マクロ

説明 

FEATURE()

詳細は、FEATURE() の宣言についての変更点を参照

LOCAL_DOMAIN()

このマクロは、クラス w ($=w) にエントリを追加する

MASQUERADE_EXCEPTION()

マスカレードできないホストやサブドメインを定義する新しいマクロ 

SMART_HOST()

このマクロは user@[ host] のように、括弧で囲まれたアドレスに使用できる

VIRTUSER_DOMAIN() または VIRTUSER_DOMAIN_FILE()

これらのマクロを使用する場合は、$=R$={VirtHost} を含める。 $=R は一連のホスト名で、これらを使ってリレーすることができる

FEATURE() の宣言についての変更点

FEATURE() の宣言についての変更点については、次の表を参照してください。

FEATURE の新しい名前および改訂された名前を使用するには、次の構文を使用します。


FEATURE(`name', `argument')

新しい sendmail.cf ファイルを構築する必要がある場合は、第 22 章「メールサービス (手順)」sendmail.cf 構成ファイルの構築 (手順) を参照してください。

表 24–14 新規および改訂された 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 によって呼び出される。詳細については、/usr/lib/mail/README ファイルを参照

dnsbl

引数 : この FEATURE() は、最大次の 2 つの引数を受け入れる。

  • DNS サーバー名

  • リジェクトメッセージ

DNS 参照の戻り値を確認する回数を複数にできる新しい FEATURE()。この FEATURE() を使用して、参照が一時的に失敗した場合の動作を指定できる

enhdnsbl

引数 : ドメイン名 

dnsbl の強化バージョン。この FEATURE() を使用して、DNS 参照の戻り値を確認できる。詳細は、/usr/lib/mail/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()。 任意の引数ドメインを指定すると、メール送信側のドメインの部分が確認される

virtuser_entire_domain

引数 : なし 

$={VirtHost} を適用するのに使用する FEATURE()$={VirtHost} は、VIRTUSER_DOMAIN または VIRTUSER_DOMAIN_FILE を使って生成できる virtusertable エントリを一致させるための新しいクラス

また、FEATURE(`virtuser_entire_domain') を使用して、クラス $={VirtHost} をサブドメイン全体に適用することもできる

次の FEATURE() は、宣言できません。

表 24–15 宣言がサポートされていない FEATURE()

FEATURE() の名前

代わりの FEATURE()

rbl

削除されたこの FEATURE() の代わりに、FEATURE(`dnsbl') および FEATURE(`enhdnsbl') を使用できる

remote_mode

/usr/lib/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')

MAILER() の宣言についての変更点

MAILER() を宣言すると、配信エージェントのサポートを指定できます。 配信エージェントを宣言するには、次の構文を使用します。


MAILER(`symbolic_name')

次の変更に注意してください。

メールプログラムの詳細については、メールプログラムを参照してください。新しい sendmail.cf ファイルを構築する必要がある場合は、第 22 章「メールサービス (手順)」sendmail.cf 構成ファイルの構築 (手順) を参照してください。

配信エージェントの新しいフラグ

次の表では、配信エージェントの新しいフラグについて説明しています。デフォルトでは、これらのフラグは設定されていません。これらの 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,
表 24–16 メールプログラムの新しいフラグ

フラグ 

説明 

%

このフラグを使用するメールプログラムは、ETRN 要求やキューオプション -qI-qR、または -qS のいずれかを使ってキューにあるメッセージを選択しないかぎり、最初の受信者宛にメールを配信したり、キューを実行したりしない

1

このフラグは、\0 などのヌル文字を送信するメールプログラムの機能を無効にする

2

このフラグは、ESMTP の使用を無効にし、代わりに SMTP を使用するように要求する 

6

このフラグを指定すると、メールプログラムでヘッダを 7 ビットにすることができる 

配信エージェントの新しい等号 (=)

次の表では、配信エージェントを定義するコマンド 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 ファイルを構築する必要がある場合は、第 22 章「メールサービス (手順)」sendmail.cf 構成ファイルの構築 (手順) を参照してください。


注 –

通常、mailer ディレクトリで、この等号の定義を変更するのは、微調整が必要な場合だけです。


表 24–17 配信エージェントの新しい等号 (=)

等号 

説明  

/=

引数 : ディレクトリのパス 

メールプログラムのプログラムを実行する前に chroot() を適用するディレクトリを指定する

m=

引数 : define() ルーチンを使って事前に定義した次の m4 の値

    smtp メールプログラムには SMTP_MAILER_MAXMSGS


    local メールプログラムには LOCAL_MAILER_MAXMSGS


    relay メールプログラムには RELAY_MAILER_MAXMSGS


smtplocal、または relay の各メールプログラムで、1 回の接続で配信するメッセージの数を制限する

W=

引数 : 増分時間 

すべてのデータの送信後、メールプログラムが戻るまでの最長待ち時間を指定する 

キューの新しい機能

次に、キューの新しい機能について詳しく説明します。

関連作業については、キューディレクトリの管理 (作業マップ) を参照してください。

sendmail における LDAP のための変更

次に、LDAP (Lightweight Directory Access Protocol) を sendmail で使用する際の変更点について説明します。

次の表では、LDAP マップの新しいフラグについて説明しています。

表 24–19 LDAP マップの新しいフラグ

フラグ 

説明 

-1

一致したレコードが 1 つだけだった場合、そのレコードを返す。複数のレコードが一致して返される場合には、結果として、レコードが検出されなかったことと同じとなる 

-r never|always|search|find

LDAP 別名の参照を解除するオプションを設定する 

-Z size

一致したもののうち、返すレコード数を制限する 

メールプログラムに新しく組み込まれた機能

前のバージョンに組み込まれていたメールプログラム [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] メールプログラムの最初の引数が、正当な値であるかどうかが確認されます。次の表では、最初のメールプログラム引数に設定可能な値について説明しています。

表 24–20 最初のメールプログラム引数に設定可能な値

値 

説明  

A=FILE

UNIX ドメインソケットによる配信に使用する 

A=TCP

TCP/IP 接続に使用する 

A=IPC

最初のメールプログラム引数としては使用できない 

新しいルールセット

次の表では、新しいルールセットとその動作について説明しています。

表 24–21 新しいルールセット

ルールセット 

説明 

check_eoh

ヘッダーから収集した情報を相関させ、欠けているヘッダーを確認する。 このルールセットは、マクロストレージマップとともに使用し、すべてのヘッダーが収集された後、呼び出される 

check_etrn

check_rcptRCPT を使用するように、ETRN コマンドを使用する

check_expn

check_rcptRCPT を使用するように、EXPN コマンドを使用する

check_vrfy

check_rcptRCPT を使用するように、 VRFY コマンドを使用する

次に、ルールセットの新しい機能について説明します。

ファイルへの変更

次の変更に注意してください。

構成内の IPv6 アドレス

sendmail バージョン 8.12 では、アドレスを正しく識別するために、構成に使用する IPv6 アドレスの前に IPv6: タグを付ける必要があります。 IPv6 アドレスを識別しない場合は、タグを前に付けません。

mail.local の変更点

次の表では、mail.local プログラムにおけるコマンド行の新しいオプションについて説明しています。sendmail は、このプログラムをローカルメールの配信エージェントとして使用します。

表 24–22 mail.local におけるコマンド行の新しいオプション

オプション 

説明  

-7

LMTP (Local Mail Transfer Protocol) モードで、LHLO 応答時に、8BITMIME のサポートが通知されるのを防止する

-b

メールボックスがその制限を超えた場合に、一時エラーではなく、永続エラーを発生させる 

LMTP モードのデフォルトは mail.local です。ただし、本リリースでは、LMTP モード以外で mail.local をローカル配信エージェントとして使用するには、次のどれかの操作を実行して S フラグを設定する必要があります。

構成ファイルには、次の構文を使用します。


MODIFY_MAILER_FLAGS(`LOCAL', `+S')      # 構成ファイル

または、m4 構成に対して次の 2 つの手順を実行します。


define(`MODIFY_MAILER_FLAGS', `S')dnl   # 第 1 段階
MAILER(local)dnl                        # 第 2 段階

注 –

MODIFY_MAILER_FLAGS は、構成ファイルを構築するのに使用する新しいマクロです。詳細は、sendmail 構成ファイルを構築するのに使用する新しいマクロを参照してください。


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

mailstats の変更点

sendmail プログラムには、メールプログラムの使用状況を統計する機能を持つ mailstats プログラムが付属しています。次の表では、mailstats の新しいオプションについて説明します。

表 24–23 mailstats の新しいオプション

オプション 

説明  

-C filename

sendmail 構成ファイルを指定する

-p

プログラムが読み取り可能なモードで、統計を明確に示す 

-P

プログラムが読み取り可能なモードで、統計を明確に示す。ただし、このオプションを指定すると、統計ファイルは切り捨てられない 

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

makemap の変更点

makemap コマンドを実行すると、sendmail 用にキー付きのデータベースファイルが作成されます。次の表では、makemap の新しいオプションについて説明しています。 オプションを宣言する場合には、次の構文を使用します。


makemap options class filename

この構文を使用するときには、次のことに注意してください。

表 24–24 makemap の新しいオプション

オプション 

説明  

-C

TrustedUser オプションの検出に、指定した sendmail 構成ファイルを使用する

-c

指定した hash および btree のキャッシュサイズを使用する

-e

RHS (right-hand side) から空の値を使用することを許可する 

-l

サポートされているマップのタイプをリストする 

-t

空白ではなく、別の区切り記号を指定する 

-u

データベースの内容を標準出力にダンプ (マップ形式を元に戻す) する 


注 –

makemaproot として実行すると、生成されたマップの所有権は、構成ファイル sendmail で指定したように、自動的に TrustedUser に変更されます。TrustedUser オプションの詳細については、表 24–2 を参照してください。


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

新しいコマンド editmap

新しい保守コマンド editmap を使用して、sendmail のキー付きデータベースマップのレコードを照会したり編集したりすることができます。コマンド行から、次の構文を使用します。


editmap options maptype mapname key "value"

詳細および使用可能なオプションについては、editmap(1M) のマニュアルページを参照してください。

他の変更点および機能

次に、他の変更点および機能について説明します。