この章ではメールサービスを設定し、管理する方法について説明します。メールサービスの管理に詳しくない場合は、メールサービスのコンポーネントを紹介している第 21 章「メールサービス (概要)」を参照してください。この章では、一般的なメールサービス構成についても説明しています (図 21–1 を参照)。この章では、次の関連作業について説明します。
メールサービスのコンポーネントについての詳細は、第 23 章「メールサービス (リファレンス)」を参照してください。 また、この章では、メールサービスのプログラムとファイル、メールルーティング処理、ネームサービスを使った sendmail の対話型操作についても説明します。
sendmail バージョン 8.12 の新機能については、第 24 章「メールサービスの新機能 (リファレンス)」を参照してください。mail.local、mailstats、および makemap の変更点についての説明もあります。 また、第 24 章「メールサービスの新機能 (リファレンス)」では、新しい保守コマンド editmap についても説明します。
次の表から、具体的な一連の手順を扱っている他の作業マップがわかります。
作業 |
説明 |
参照先 |
---|---|---|
メールサービスを設定する |
メールサービスの各コンポーネントを設定する手順。メールサーバー、メールクライアント、メールホスト、メールゲートウェイ、および仮想ホストの設定方法について説明する。sendmail で DNS を利用する方法についても説明する | |
sendmail 構成ファイルを構築する |
sendmail.cf ファイルを変更する手順。例としてドメインマスカレードを有効にする方法を取り上げる | |
代替構成を使ってメール配信を管理する |
マスターデーモンが無効な場合に発生する可能性があるメール配信上の問題を防ぐための手順 | |
メール別名ファイルを管理する |
ネットワークで別名を提供するための手順。NIS+ テーブルのエントリの管理方法を説明する。また、NIS マップ、ローカルメール別名、キー付きマップファイル、およびポストマスター別名の設定方法も説明する | |
メールキューを管理する |
スムーズなキュー処理を提供するための手順。メールキューを表示したり移動したりする方法、強制的なメールキュー処理方法、およびメールキューのサブセットの実行方法について説明する。古いメールキューの実行方法についても説明する | |
.forward ファイルを管理する |
.forward を無効にしたり、.forward ファイルの検索パスを変更したりする手順。/etc/shells を作成し生成することにより、.forward ファイルの使用をユーザーに許可する方法も説明する | |
メールサービスの障害追跡手順とヒント |
メールサービスで発生した問題を解決するための手順とヒント。メール構成のテスト、メール別名の確認、sendmail ルールセットのテスト、他のシステムへの接続の確認、メッセージの記録などの方法について学ぶ。他のメール診断情報の情報源も紹介する | |
エラーメッセージを解釈処理する |
メール関連のエラーメッセージを解釈処理するための情報 |
以下に、メールシステムを計画するときに考慮すべき点を挙げます。
必要に応じてメール構成のタイプを決定します。この節では、メール構成の基本の 2 タイプについて説明し、各構成を設定するために必要なことがらについて簡単に説明します。新しいメールシステムを設定する必要がある場合、あるいは既存のメールシステムを拡張する場合は、この節の内容が役立つでしょう。ローカルメール専用 では、1 番目の構成タイプについて、ローカルメールとリモート接続 では 2 番目の構成タイプについて説明します。
必要に応じてメールサーバー、メールホスト、およびメールゲートウェイとして動作するシステムを選択します。
サービスを提供するすべてのメールクライアントのリストを作成し、メールボックスの場所も含めます。このリストは、ユーザーのメール別名を作成するときに役立ちます。
別名の更新方法とメールメッセージの転送方法を決めます。ユーザーがメールの転送要求を送る場所として、 aliases メールボックスを設定できます。ユーザーはこのメールボックスを使って、デフォルトのメール別名の変更要求を送ることもできます。システムで NIS または NIS+ を使用する場合、メール転送の管理は、ユーザー自身ではなく、管理者が行うこともできます。メール別名ファイルの管理 (作業マップ) に、別名に関連する作業の一覧があります。.forward ファイルの管理 (作業マップ) に、.forward ファイルの管理に関連する作業の一覧があります。
メールシステムの計画を立てたら、サイトにシステムを設定し、メールサービスの設定 (作業マップ) で説明する機能を実行します。他の作業については、メールサービス (作業マップ) を参照してください。
図 22–1 に示すように、もっとも単純なメール構成は、1 台のメールホストに 2 台以上のワークステーションが接続されている場合です。メールは完全にローカルです。すべてのクライアントがローカルのディスクにメールを格納し、すべてのクライアントがメールサーバーとして機能します。メールアドレスは /etc/mail/aliases ファイルを使って構文解析されます。
この種類のメール構成を設定するには、以下が必要です。
メールホストとして指定されたサーバー。 メールホストを指定するには、メールホストの /etc/hosts ファイルに mailhost.domain_name を追加。また、NIS や NIS+ を実行していない場合は、すべてのメールクライアントの /etc/hosts ファイルにメールホスト IP アドレス行を追加
NIS または NIS+ を実行しない場合、ローカルメールボックスのあるすべてのシステム上に、対応する /etc/mail/aliases ファイルが必要
各メールクライアントシステムの /var/mail に、メールボックスを格納できるだけの十分な領域
メールサービスの設定の詳細については、メールサービスの設定 (作業) を参照してください。 メールサービスの設定に関する特定の手順については、メールサービスの設定 (作業マップ)を参照してください。
小規模のネットワークにおけるもっとも一般的なメール構成を図 22–2 に示します。1 つのシステムが、メールサーバー、メールホスト、およびリモート接続を行うメールゲートウェイを兼ねています。メールは、メールゲートウェイ上の /etc/mail/aliases ファイルを使って配布されます。ネームサービスは必要ありません。
この構成では、メールクライアントがメールホスト上の /var/mail からメールファイルをマウントすると想定できます。この種類のメール構成を設定するには、以下が必要です。
メールゲートウェイ上に main.cf ファイル。MX (メール交換局) レコードを使用する場合、このファイルは編集不要
各メールクライアントシステム上に、デフォルトの /etc/mail/sendmail.cf ファイル。このファイルは編集不要
メールホストとして指定されたサーバー。 メールホストを指定するには、メールホストの /etc/hosts ファイルに mailhost.domain_name を追加。また、NIS や NIS+ を実行していない場合は追加情報が必要。すべてのメールクライアントの /etc/hosts ファイルにメールホストの IP アドレス行を追加
NIS または NIS+ を実行しない場合、ローカルメールボックスのあるすべてのシステム上に、対応する /etc/mail/aliases ファイルが必要
メールサーバーの /var/mail に、クライアントのメールボックスを格納できるだけの十分な領域
メールサービスの設定の詳細については、メールサービスの設定 (作業) を参照してください。 メールサービスの設定に関する特定の手順については、メールサービスの設定 (作業マップ)を参照してください。
作業 |
説明 |
参照先 |
---|---|---|
メールサーバーを設定する |
サーバーがメールを経路指定できるようにする手順 | |
メールクライアントを設定する |
ユーザーがメールを受信できるようにする手順 | |
メールホストを設定する |
電子メールアドレスを解釈処理できるメールホストを確立する手順 | |
メールゲートウェイを設定する |
ドメイン外のネットワークとの通信を管理する手順 | |
sendmail で DNS を使用する |
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 ファイルで確認します。
メールサーバーのスーパーユーザーになるか、同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
sendmail を停止します。
# /etc/init.d/sendmail stop |
/var/mail ディレクトリをリモートアクセスに使用できるかどうかを確認します。
# share |
/var/mail ディレクトリが表示された場合は、手順 5 に進みます。
/var/mail ディレクトリが表示されない場合、あるいはリストが表示されない場合は、該当する手順に進みます。
(省略可能) リストが表示されない場合は、NFS サービスを起動します。
ファイルシステム自動共有を設定する方法 の手順に従って、 /var/mail ディレクトリを使用して NFS サービスを起動します。
(省略可能) /var/mail ディレクトリがリストに含まれていない場合は、/var/mail ディレクトリを /etc/dfs/dfstab に追加します。
/etc/dfs/dfstab ファイルに次のコマンド行を追加します。
share -F nfs -o rw /var/mail |
ファイルシステムをマウントできるようにします。
# shareall |
ネームサービスが起動されていることを確認します。
(省略可能) NIS を実行している場合は、次のコマンドを使用します。
# ypwhich |
詳細は、ypwhich(1) のマニュアルページを参照してください。
(省略可能) NIS+ を実行している場合は、次のコマンドを使用します。
# nisls |
詳細は、nisls(1) のマニュアルページを参照してください。
(省略可能) DNS を実行している場合は、次のコマンドを使用します。
# nslookup hostname |
ホスト名を指定
詳細は、nslookup(1M) のマニュアルページを参照してください。
(省略可能) LDAP を実行している場合は、次のコマンドを使用します。
# ldaplist |
詳細は、ldaplist(1) のマニュアルページを参照してください。
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 の構成方法については、このマニュアルでは説明していません。
メールクライアントシステム上でスーパーユーザーになるか、同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
sendmail を停止します。
# /etc/init.d/sendmail stop |
メールクライアントのシステムで /var/mail マウントポイントがあることを確認します。
マウントポイントは、インストール過程で作成されています。ls を使用すると、ファイルシステムが存在するかどうかを確認できます。次の例はファイルシステムが作成されていない場合に受け取る応答を示しています。
# ls -l /var/mail /var/mail not found |
/var/mail ディレクトリにファイルが何もないことを確認します。
メールファイルがこのディレクトリにある場合は、それらのファイルを移動させ、サーバーから /var/mail ディレクトリがマウントされる時にその対象とならないようにします。
メールサーバーから /var/mail ディレクトリをマウントします。
メールディレクトリは自動的にマウントすることも、ブート時にマウントすることもできます。
(省略可能) /var/mail を自動的にマウントします。
次のようなエントリを /etc/auto_direct ファイルに追加します。
/var/mail -rw,hard,actimeo=0 server:/var/mail |
割り当てられているサーバー名を指定
(省略可能) ブート時に /var/mail をマウントします。
/etc/vfstab ファイルに以下のエントリを追加します。このエントリにより、指定されたメールサーバー上の /var/mail ディレクトリがローカルの /var/mail ディレクトリをマウントできます。
server:/var/mail - /var/mail nfs - no rw,hard,actimeo=0 |
システムをリブートするたびに、クライアントのメールボックスが自動的にマウントされます。 システムをリブートしない場合は、次のコマンドを入力すれば、クライアントのメールボックスをマウントできます。
# mountall |
メールボックスのロックとメールボックスへのアクセスが適切に動作するには、NFS サーバーからメールをマウントする時に actimeo=0 オプションを入れる必要があります。
/etc/hosts を更新します。
/etc/hosts ファイルを編集し、メールサーバーのエントリを追加します。ネームサービスを使用する場合、この手順は必要ありません。
# cat /etc/hosts # # Internet host table # .. IP_address mailhost mailhost mailhost.example.com |
割り当てられている IP アドレスを指定
割り当てられているドメインを指定
割り当てられているメールホストを指定
詳細は、hosts(4) のマニュアルページを参照してください。
別名ファイルの 1 つにクライアントのエントリを追加します。
メール別名ファイルの管理に関する作業マップについては、メール別名ファイルの管理 (作業マップ) を参照してください。
mail.local プログラムは、メッセージがはじめて配信されたときに /var/mail ディレクトリでメールボックスを自動的に作成します。メールクライアントの個々のメールボックスを作成する必要はありません。
sendmail を再起動します。
# /etc/init.d/sendmail start |
メールホストは、電子メールアドレスを解決し、ドメイン内でメールを再度ルーティングします。メールホストに適しているのは、ネットワークにリモート接続を提供するシステム、または親ドメインにネットワークを接続するシステムです。 次に、メールホストを設定する手順を示します。
メールホストシステム上でスーパーユーザーになるか、同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
sendmail を停止します。
# /etc/init.d/sendmail stop |
ホスト名の構成を確認します。
次のように check-hostname スクリプトを実行し、sendmail が、このサーバーの完全指定のホスト名を識別できるかどうかを確認します。
% /usr/lib/mail/sh/check-hostname hostname phoenix OK: fully qualified as phoenix.example.com |
このスクリプトによる完全指定ホスト名の識別ができなかった場合は、完全指定ホスト名を /etc/hosts 内のホストの最初の別名として追加する必要があります。
/etc/hosts ファイルを更新します。
以下から、適切な手順を選択します。
(省略可能) NIS または NIS+ を使用している場合は、新しいメールホストとなるシステムの /etc/hosts ファイルを編集します。
メールホストシステムの IP アドレスとシステム名の後に mailhost と mailhost.domain を追加します。
IP_address mailhost mailhost mailhost.domain loghost |
割り当てられている IP アドレスを指定
メールホストシステムのシステム名を指定
拡張ドメイン名を指定
これで、このシステムはメールホストとして指定されます。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 |
(省略可能) NIS または NIS+ を使用しない場合は、ネットワーク内の各システムにある /etc/hosts ファイルを編集します。次のようなエントリを作成します。
IP_address mailhost mailhost mailhost.domain loghost |
正しい構成ファイルを選択し、コピーして名前を変更します。
次のコマンドは、/etc/mail/main.cf ファイルをコピーし名前を変更します。
# cp /etc/mail/main.cf /etc/mail/sendmail.cf |
sendmail を再起動します。
# /etc/init.d/sendmail start |
メール構成をテストします。
手順については、メール構成をテストする方法 を参照してください。
メールホストの詳細については、第 23 章「メールサービス (リファレンス)」の ハードウェアコンポーネントを参照してください。
メールゲートウェイは、ドメイン外のネットワークとの通信を管理します。送信側メールゲートウェイ上のメールプログラムは、受信側システムのメールプログラムと同じでなければなりません。
メールゲートウェイに適しているのは、Ethernet および電話回線に接続されているシステムです。インターネットへのルーターとして設定されているシステムも適しています。メールホストをメールゲートウェイとして設定するか、あるいは別のシステムをメールゲートウェイとして設定できます。複数のメールゲートウェイを自分のドメイン用として設定できます。UUCP (UNIX-to-UNIX Copy Program) 接続がある場合は、メールゲートウェイとして UUCP 接続を使ってシステムを構成します。
メールゲートウェイ上でスーパーユーザーになるか、同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
sendmail を停止します。
# /etc/init.d/sendmail stop |
正しい構成ファイルを選択し、コピーして名前を変更します。
次のコマンドは main.cf ファイルをコピーし名前を変更します。
# cp /etc/mail/main.cf /etc/mail/sendmail.cf |
ホスト名の構成を確認します。
次のように check-hostname スクリプトを実行し、sendmail が、このサーバーの完全指定のホスト名を識別できるかどうかを確認します。
# /usr/lib/mail/sh/check-hostname hostname phoenix OK: fully qualified as phoenix.example.com |
このスクリプトによる完全指定ホスト名の識別ができなかった場合は、完全指定ホスト名を /etc/hosts 内のホストの最初の別名として追加する必要があります。この手順の詳細については、メールホストを設定する方法 の 手順 4を参照してください。
ネームサービスが起動されていることを確認します。
(省略可能) NIS を実行している場合は、次のコマンドを使用します。
# ypwhich |
詳細は、ypwhich(1) のマニュアルページを参照してください。
(省略可能) NIS+ を実行している場合は、次のコマンドを使用します。
# nisls |
詳細は、nisls(1) のマニュアルページを参照してください。
(省略可能) DNS を実行している場合は、次のコマンドを使用します。
# nslookup hostname |
ホスト名を指定
詳細は、nslookup(1M) のマニュアルページを参照してください。
(省略可能) LDAP を実行している場合は、次のコマンドを使用します。
# ldaplist |
詳細は、ldaplist(1) のマニュアルページを参照してください。
sendmail を再起動します。
# /etc/init.d/sendmail start |
メール構成をテストします。
手順については、メール構成をテストする方法 を参照してください。
メールゲートウェイの詳細については、第 23 章「メールサービス (リファレンス)」の ハードウェアコンポーネントを参照してください。
DNS ネームサービスは、個別の別名をサポートしません。このネームサービスは、MX (メール交換局) レコードおよび CNAME レコードを使用するホストまたはドメインの別名をサポートします。ホスト名とドメイン名は両方またはいずれか一方を DNS データベースで指定できます。sendmail と DNS の詳細については、第 23 章「メールサービス (リファレンス)」の sendmail とネームサービスの相互作用、または『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
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 |
mailhost と mailhost.domain エントリを確認します。
nslookup を使用して、mailhost と mailhost.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 |
.cf ファイルの名前を指定
sendmail.cf 構成ファイルの構築 (手順) では、構築手順の一部として、これと同じ 3 つの手順を説明しています。
/etc/mail/sendmail.cf ファイルを生成したら、次の手順に進み、仮想ユーザーテーブルを作成できます。
新しい sendmail.cf ファイルを構築する方法 で、構成ファイルの構築方法について説明します。sendmail.cf ファイルの以前のバージョンも引き続き使用できますが、新しい形式を使用することをお勧めします。
/usr/lib/mail/README。構成手順の詳細な説明
http://www.sendmail.org。sendmail 構成に関するオンライン情報
第 23 章「メールサービス (リファレンス)」の 構成ファイルのバージョンと sendmail 構成ファイル。いくつかのガイダンス
第 24 章「メールサービスの新機能 (リファレンス)」の次の節では、新しい m4 構成機能について説明しています。
次に、新しい構成ファイルを構築する手順を示します。
/usr/lib/mail/cf/main-v7sun.mc は、 /usr/lib/mail/cf/main.mc になりました。
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
sendmail を停止します。
# /etc/init.d/sendmail stop |
変更しようとする構成ファイルのコピーを作成します。
# cd /usr/lib/mail/cf # cp main.mc myhost.mc |
.mc ファイルの新しい名前を指定
必要に応じて、新しい構成ファイル (たとえば、myhost.mc) を編集します。
たとえば、ドメインマスカレードを有効にするには、次のコマンド行を追加します。
# cat myhost.mc .. MASQUERADE_AS(`host.domain') |
目的のホスト名とドメイン名を指定
この例では、MASQUERADE_AS は、送信されたメールに、$j ではなく host.domain から送信されたものとしてラベルを付けます。
m4 を使って構成ファイルを構築します。
# /usr/ccs/bin/make myhost.cf |
-C オプションを使用して、新しい構成ファイルをテストし、新しいファイルを指定します。
# /usr/lib/sendmail -C myhost.cf -v testaddr </dev/null |
このコマンドはメッセージを表示するとともに、メッセージを testaddr に送信します。システム上で sendmail サービスを再起動することなく送信メールだけをテストできます。まだメールを処理していないシステムでは、メール構成をテストする方法 で説明する完全なテスト手順を使用してください。
オリジナルのコピーを作成した後、新しい構成ファイルをインストールします。
# cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.save # cp myhost.cf /etc/mail/sendmail.cf |
sendmail サービスを再起動します。
# /etc/init.d/sendmail start |
送受信されるメールの転送を容易にするため、sendmail の新しいデフォルトの構成は、デーモンとクライアントキューランナーを使用します。デーモンを無効にしている場合は、次の作業を行います。詳細は、新しい構成ファイル submit.cf を参照してください。
sendmail のデフォルトの構成では、クライアントキューランナーは、ローカルの SMTP ポートのデーモンにメールを送信できなければなりません。デーモンが SMTP ポート上で待機していない場合、メールはキューに留まります。この問題を避けるには、次の作業を行います。デーモンとクライアントキューランナーについての詳細、およびこの代替構成を使用する必要性を理解するには、新しい構成ファイル submit.cf を参照してください。
この手順を実行すると、デーモンは、ローカルホストからの接続を受け付けるためだけに動作するようになります。
スーパーユーザー、またはそれと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
sendmail を停止します。
# /etc/init.d/sendmail stop |
変更しようとする構成ファイルのコピーを作成します。必要に応じて、subsidiary.mc または main.mc をコピーします。この例では、subsidiary.mc ファイルを使用します。
# cd /usr/lib/mail/cf # cp subsidiary.mc myhost.mc |
.mc ファイルの新しい名前を指定
新しい構成ファイル (たとえば、myhost.mc) を編集します。
MAILER() 行の前に次の行を追加します。
# cat myhost.mc .. DAEMON_OPTIONS(`NAME=NoMTA4, Family=inet, Addr=127.0.0.1')dnl |
(省略可能) ホストで 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 |
(省略可能) ホストで IPv6 ローカルホストアドレスが使用可能かどうかを調べるには、次のコマンドを実行します。
# /usr/sbin/ifconfig -a |
IPv6 を使用できる場合は、次のような出力が得られます。
lo0: flags=2000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1 inet6 ::1/128 |
m4 を使って構成ファイルを構築します。
# /usr/ccs/bin/make myhost.cf |
オリジナルのコピーを作成した後、新しい構成ファイルをインストールします。
# cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.save # cp myhost.cf /etc/mail/sendmail.cf |
sendmail サービスを再起動します。
# /etc/init.d/sendmail start |
次の表では、メール別名ファイルの管理の手順を説明します。 このトピックの詳細は、第 23 章「メールサービス (リファレンス)」の メール別名ファイルを参照してください。
作業 |
説明 |
参照先 |
---|---|---|
NIS+ mail_aliases テーブルで別名のエントリを管理する |
ネームサービスが NIS+ である場合に、mail_aliases テーブルの内容を管理する手順。エントリの表示、追加、編集、削除の方法を説明する | |
NIS mail.aliases マップを設定する |
ネームサービスが NIS の場合、mail.aliases マップを使って別名を設定する手順 | |
ローカルのメール別名ファイルを設定する |
NIS や NIS+ などのネームサービスを使用していない場合に、/etc/mail/aliases ファイルを使って別名を設定する手順 | |
キー付きマップファイルを作成する |
キー付きマップファイルを使って別名を設定する手順 | |
postmaster 別名を設定する |
postmaster 別名を管理する手順。この別名は必須 |
メール別名はドメイン独自にする必要があります。 この節では、メール別名ファイルを管理する手順を説明します。また、Solaris 管理コンソールの「メーリングリスト」機能を使って別名データベース上でこれらの作業を実行することもできます。
その他に、makemap を使ってローカルメールホストにデータベースファイルを作成することもできます。makemap(1M) のマニュアルページを参照してください。ローカルのデータベースファイルを使用しても、NIS や NIS+ のようなネームサービスを使用するほどの利点は得られません。しかし、ネットワークのルックアップは必要ないため、ローカルのデータベースファイルからの方がより早くデータを取り出すことができます。詳細は、第 23 章「メールサービス (リファレンス)」 のsendmail とネームサービスの相互作用 およびメール別名ファイル を参照してください。
NIS+ テーブルでエントリを管理するために、aliasadm コマンドを使用できます。aliasadm コマンドを使ってテーブルエントリを表示、追加、変更、または削除するには、次の手順に従います。
テーブルを所有する NIS+ グループのメンバーになるか、メールサーバーのスーパーユーザーになるか、同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
必要に応じて、次に挙げる例のいずれかの手順に従って作業します。
場合によっては、最初にメールクライアント、クライアントのメールボックスの位置、およびメールサーバーシステム名のそれぞれのリストをコンパイルする必要があります。
テーブルを所有する NIS+ グループのメンバーになるか、メールサーバーのスーパーユーザーになるか、同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
NIS+ テーブルを作成します。
# aliasadm -I |
テーブルにエントリを追加します。
2 つまたは 3 つの別名を追加する方法については、例 — コマンド行から NIS+ mail_aliases テーブルへ別名を追加するを参照してください。
多数の別名を追加する方法については、例 — NIS+ mail_aliases テーブルを編集してエントリを追加するを参照してください。
詳細は、aliasadm(1M) のマニュアルページを参照してください。
テーブルを所有する NIS+ グループのメンバーになるか、メールサーバーのスーパーユーザーになるか、同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
別名のアルファベット順に全エントリを表示します。
# aliasadm -1 |
詳細は、aliasadm(1M) のマニュアルページを参照してください。
テーブルの個々のエントリを表示するには、次の手順に従います。
テーブルを所有する NIS+ グループのメンバーになるか、メールサーバーのスーパーユーザーになるか、同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
個々のエントリを表示します。
# aliasadm -m ignatz ignatz: ignatz@saturn # Alias for Iggy Ignatz |
このコマンドは、完全に一致する別名のみ表示し、部分的に一致するエントリは表示しません。aliasadm -m オプションでは、メタキャラクタ (*、? など) は使用できません。
詳細は、aliasadm(1M) のマニュアルページを参照してください。
テーブルの部分一致エントリを表示するには、次の手順に従います。
テーブルを所有する NIS+ グループのメンバーになるか、メールサーバーのスーパーユーザーになるか、同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
テーブル内の部分一致エントリを表示します。
# aliasadm -l | grep partial_string |
検索に使用する文字列を指定
詳細は、aliasadm(1M) のマニュアルページを参照してください。
2 つまたは 3 つの別名をテーブルに追加するには、次の手順に従います。
メールクライアント、メールボックスの場所、およびメールサーバーシステムの名前の各リストをコンパイルします。
テーブルを所有する NIS+ グループのメンバーになるか、メールサーバーのスーパーユーザーになるか、同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
(省略可能) 必要な場合は、NIS+ テーブルを作成します。
まったく新しい NIS+ mail_aliases テーブルを作成する場合は、最初に NIS+ テーブルを初期設定しなければなりません。 テーブルの作成方法については、NIS+ mail_aliases テーブルを作成する例 を参照してください。
テーブルに別名を追加します。
次に、一般的なエントリの例を示します。
# aliasadm -a iggy iggy.ignatz@saturn "Iggy Ignatz" |
上記の例の入力内容を次に説明します。
別名を追加するためのオプション
簡略別名
拡張別名
引用符で囲んだ別名
作成したエントリを表示し、エントリに間違いがないことを確認します。
# aliasadm -m alias |
作成したエントリ
詳細は、aliasadm(1M) のマニュアルページを参照してください。
メールクライアント、メールボックスの場所、およびメールサーバーシステムの名前の各リストをコンパイルします。
テーブルを所有する NIS+ グループのメンバーになるか、メールサーバーのスーパーユーザーになるか、同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
別名テーブルを表示して編集します。
# aliasadm -e |
このコマンドは、テーブルを表示し、テーブルの編集を可能にします。使用するエディタは、$EDITOR 環境変数で設定されています。この変数が設定されていない場合、vi がデフォルトのエディタになります。
次の形式で、1 行に 1 別名ずつ入力します。
alias: expanded_alias # ["option" # "comments"] |
この列には、簡略別名を入力
この列には、拡張別名を入力
この列は、将来の拡張のために予約されている
この列は、別名など、個々の別名に関するコメントに使用
オプション列をブランクにする場合は、空の引用符 2 つ ("") を入力し、その後にコメントを追加します。
NIS+ mail_aliases テーブルでは、エントリの順序は重要ではありません。aliasadm -l コマンドがリストをソートし、エントリをアルファベット順に表示します。
詳細は、メール別名ファイル および aliasadm(1M) のマニュアルページを参照してください。
テーブルを所有する NIS+ グループのメンバーになるか、メールサーバーのスーパーユーザーになるか、同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
別名エントリを表示します。
# aliasadm -m alias |
割り当てられている別名を指定
必要に応じて別名エントリを編集します。
# aliasadm -c alias expanded_alias [options comments] |
必要な場合は、別名を編集
必要な場合は、拡張別名を編集
必要な場合は、オプションを編集
必要な場合は、このエントリのコメントを編集
詳細は、aliasadm(1M) のマニュアルページおよび メール別名ファイルを参照してください。
編集したエントリを表示し、エントリに間違いがないことを確認します。
# aliasadm -m alias |
詳細は、aliasadm(1M) のマニュアルページを参照してください。
テーブルを所有する NIS+ グループのメンバーになるか、メールサーバーのスーパーユーザーになるか、同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
テーブルからエントリを削除します。
# aliasadm -d alias |
削除するエントリの別名を指定
詳細は、aliasadm(1M) のマニュアルページを参照してください。
次の手順によって、NIS の mail.aliases マップを使って別名の設定を容易に行うことができます。
メールクライアント、メールボックスの場所、およびメールサーバーシステムの名前の各リストをコンパイルします。
NIS マスターサーバーのスーパーユーザーになるか、同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
/etc/mail/aliases ファイルを編集し、次のようなエントリを作成します。
メールクライアントごとにエントリを追加します。
# cat /etc/mail/aliases .. alias:expanded_alias |
簡略別名を指定
拡張別名 (user@host.domain.com) を指定
Postmaster: root エントリがあることを確認します。
# cat /etc/mail/aliases .. Postmaster: root |
root の別名を追加します。 ポストマスターとして指定された個人のメールアドレスを使用します。
# cat /etc/mail/aliases .. root: user@host.domain.com |
指定されたポストマスターに割り当てられているアドレスを指定
NIS マスターサーバーがネームサービスを実行中で、各メールサーバーのホスト名を解釈処理できることを確認します。
/var/yp ディレクトリに移動します。
# cd /var/yp |
make コマンドを適用します。
# make |
/etc/hosts および /etc/mail/aliases ファイルの変更は、NIS スレーブシステムに伝達されます。変更は、遅くとも数分後には有効になります。
ローカルメール別名ファイルで別名を解釈処理するには、次の手順に従います。
ユーザーとメールボックスの場所の各リストをコンパイルします。
メールサーバーのスーパーユーザーになるか、あるいは同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
/etc/mail/aliases ファイルを編集し、次のようなエントリを作成します。
ユーザーごとにエントリを追加します。
user1: user2@host.domain |
新しい別名を指定
新しい別名の実際のアドレスを指定
Postmaster: root エントリがあることを確認します。
# cat /etc/mail/aliases .. Postmaster: root |
root の別名を追加します。 ポストマスターとして指定された個人のメールアドレスを使用します。
# cat /etc/mail/aliases .. root: user@host.domain.com |
指定されたポストマスターに割り当てられているアドレスを指定
別名データベースを再構築します。
# newaliases |
/etc/mail/sendmail.cf の AliasFile オプションの構成によって、このコマンドがバイナリ形式で、/etc/mail/aliases.db ファイルを 1 つ生成するか、または /etc/mail/aliases.dir と /etc/mail/aliases.pag の 1 組のファイルを生成するかが決まります。
次の手順のどちらかを実行して、生成されたファイルをコピーします。
(省略可能) /etc/mail/aliases、/etc/mail/aliases.dir、および /etc/mail/aliases.pag ファイルを他の各システムにコピーします。
rcp または rdist コマンドを使用して 3 つのファイルをコピーできます。 詳細は、rcp(1) のマニュアルページまたは rdist(1) のマニュアルページを参照してください。 また、この目的のためのスクリプトを作成することもできます。
これらのファイルをコピーしたら、newaliases コマンドを他の各システムで実行する必要はありません。ただし、メールクライアントを追加または削除するたびにすべての /etc/mail/aliases ファイルを更新する必要があるので注意してください。
(省略可能) /etc/mail/aliases.db ファイルを他の各システムにコピーします。
rcp または rdist コマンドを使用してファイルをコピーできます。 詳細は、rcp(1) のマニュアルページまたは rdist(1) のマニュアルページを参照してください。 また、この目的のためのスクリプトを作成することもできます。
このファイルをコピーしたら、newaliases コマンドを他の各システムで実行する必要はありません。ただし、メールクライアントを追加または削除するたびにすべての /etc/mail/aliases ファイルを更新する必要があるので注意してください。
キー付きマップファイルを作成するには、次の手順に従います。
メールサーバーのスーパーユーザーになるか、同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
入力ファイルを作成します。
エントリには、次の構文を使用できます。
old_name@newdomain.com new_name@newdomain.com old_name@olddomain.com error:nouser No such user here @olddomain.com %1@newdomain.com |
新たに割り当てたドメインでこれまで割り当てられていたユーザー名を指定
新たに割り当てるアドレスを指定
これまで割り当てられていたドメインでこれまで割り当てられていたユーザー名を指定
これまで割り当てられていたドメインを指定
新たに割り当てるドメインを指定
1 番目のエントリにより、メールは新しい別名に転送されます。2 番目のエントリにより、不適切な別名が使用されたときにメッセージが作成されます。最後のエントリにより、すべての着信メールは olddomain から newdomain へ転送されます。
データベースファイルを作成します。
# /usr/sbin/makemap maptype newmap < newmap |
dbm、btree、hash などのデータベースタイプを選択
入力ファイル名とデータベースファイル名の最初の部分を指定。dbm データベースタイプを選択すると、データベースファイルは接尾辞に .pag または .dir を使って作成される。他の 2 つのデータベースタイプの場合、ファイル名には .db が付く
各システムは postmaster メールボックスにメールを送信できなければなりません。postmaster の NIS または NIS+ 別名を作成できます。あるいは、ローカルの /etc/mail/aliases ファイルそれぞれに別名を作成することもできます。次の手順を参照してください。
postmaster 別名をローカルの各 /etc/mail/aliases ファイルに作成する場合は、次の手順に従います。
各ローカルシステムのスーパーユーザーになるか、同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
/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 |
各システムの /etc/mail/aliases ファイルを編集します。
root をポストマスターに指定する個人のメールアドレスに変更します。
Postmaster: mail_address |
ポストマスターとして指定された個人に割り当てられたアドレスを使用します。
(省略可能) ポストマスター用に別のメールボックスを作成します。
ポストマスターがポストマスターメールと個人メールとを区別するために、別のメールボックスを作成できます。別のメールボックスを作成する場合は、/etc/mail/aliases ファイルを編集するときに、ポストマスターの個人メールアドレスではなくメールボックスアドレスを使用してください。詳細は、postmaster 用に別のメールボックスを作成する方法を参照してください。
postmaster 用に別のメールボックスを作成する場合は、次の手順に従います。
メールサーバーのスーパーユーザーになるか、あるいは同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
postmaster として指定された個人のアカウントを作成します。パスワードフィールドにアスタリスク (*) を入力します。
ユーザーアカウントの追加の詳細については、『Solaris のシステム管理 (基本編)』の「ユーザーアカウントとグループの管理 (手順)」を参照してください。
メールが配信されたら、mail プログラムがメールボックス名に読み書きできるようにします。
# mail -f postmaster |
割り当てられているアドレスを指定
postmaster メールボックスを /etc/mail/aliases ファイル内の別名に追加する場合は、次の手順に従います。
各システムのスーパーユーザーになるか、同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
root の別名を追加します。 ポストマスターとして指定された個人のメールアドレスを使用します。
# cat /etc/mail/aliases .. root: user@host.domain.com |
ポストマスターとして指定された個人に割り当てられたアドレスを使用します。
ポストマスターのローカルシステムで、 /etc/mail/aliases ファイルに別名の名前を定義するエントリを作成します。 sysadmin が 1 例です。 ローカルメールボックスへのパスも指定します。
# cat /etc/mail/aliases .. sysadmin: /usr/somewhere/somefile |
新しい別名の名前を作成
ローカルメールボックスのパスを指定
別名データベースを再構築します。
# newaliases |
作業 |
説明 |
参照先 |
---|---|---|
メールキュー /var/spool/mqueue の内容を表示する |
キューにあるメッセージの数とそれらのメッセージがキューから消去されるのにかかる時間を表示する手順 | |
メールキュー /var/spool/mqueue を強制処理する |
以前にメッセージを受信できなかったシステムへのメッセージを処理する手順 | |
メールキュー /var/spool/mqueue のサブセットを実行する |
ホスト名など、アドレスの部分文字列を強制的に処理する手順。さらに、特定のメッセージをキューから強制的に処理する手順 | |
メールキュー /var/spool/mqueue を移動する |
メールキューを移動する手順 | |
古いメールキュー /var/spool/omqueue を実行する |
古いメールキューを実行する手順 |
この節では、キューの管理に役立つ作業について説明します。クライアント専用のキューの詳細については、新しい構成ファイル submit.cf を参照してください。他の関連情報については、キューの新しい機能 を参照してください。
キューにあるメッセージの数とそれらのメッセージがキューから消去されるのにかかる時間を表示するには、次の手順に従います。
次の情報を表示するには、以下に示すコマンドを使用します。
キュー ID
メッセージのサイズ
メッセージがキューに入った日付
メッセージの状態
送信者と受信者
# /usr/bin/mailq | more |
このコマンドは、認証属性 solaris.admin.mail.mailq を確認します。確認が取れると、sendmail で -bp フラグを指定するのと同じ処理が実行されます。確認ができない場合は、エラーメッセージが表示されます。デフォルトでは、この認証属性はすべてのユーザーで使用できるようになっています。認証属性は、prof_attr 内のユーザーエントリを変更することにより無効にできます。詳細は、prof_attr(4) および mailq(1) のマニュアルページを参照してください。
たとえば、以前にメッセージを受信できなかったシステムへのメッセージを処理するには、次の手順に従います。
スーパーユーザーになるか、それと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
キューを強制処理し、キューが消去されるとジョブの進捗状況を表示します。
# /usr/lib/sendmail -q -v |
たとえば、ホスト名など、アドレスの部分文字列を強制的に処理するには、次の手順に従います。また、特定のメッセージをキューから強制的に処理するにも、次の手順に従います。
スーパーユーザーになるか、それと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
-qRstring を使用して、いつでもメールキューのサブセットを実行できます。
# /usr/lib/sendmail -qRstring |
受信者の別名または user@host.domain の部分文字列 (ホスト名など) を指定
代わりに、-qInnnnn を使ってメールキューのサブセットを実行することもできます。
# /usr/lib/sendmail -qInnnnn |
キュー ID を指定
メールホストのスーパーユーザーになるか、同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
sendmail デーモンを終了します。
# /etc/init.d/sendmail stop |
これで、sendmail はキューディレクトリを処理しなくなります。
/var/spool ディレクトリに移動します。
# cd /var/spool |
mqueue ディレクトリとディレクトリ内のすべての内容を omqueue ディレクトリに移動します。次に、mqueue という名前の新しい空のディレクトリを作成します。
# mv mqueue omqueue; mkdir mqueue |
ディレクトリのアクセス権を所有者は読み取り/書き込み/実行に、またグループは読み取り/実行に設定します。また、所有者とグループを daemon に設定します。
# chmod 750 mqueue; chown root:bin mqueue |
sendmail を起動します。
# /etc/init.d/sendmail start |
スーパーユーザーになるか、それと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
古いメールキューを実行します。
# /usr/lib/sendmail -oQ/var/spool/omqueue -q |
-oQ フラグで、代替キューディレクトリを指定します。-q フラグで、キューのすべてのジョブを実行するように指示します。画面に冗長出力を表示する場合は、-v フラグを使用します。
空のディレクトリを削除します。
# rmdir /var/spool/omqueue |
次の表では、.forward ファイルを管理するための手順を説明します。詳細は、第 23 章「メールサービス (リファレンス)」の .forward ファイルを参照してください。
作業 |
説明 |
参照先 |
---|---|---|
.forward ファイルを無効にする |
たとえば、自動転送を禁止する場合に実行する手順 | |
.forward ファイルの検索パスを変更する |
たとえば、すべての .forward ファイルを共通ディレクトリに移動させる場合に実行する手順 | |
/etc/shells を作成し生成する |
メールをプログラムまたはファイルに転送するために、ユーザーが .forward ファイルを使用できるようにする手順 |
この節では、.forward ファイルの管理に関する複数の手順を説明します。これらファイルはユーザーが編集できるので、ファイルが問題の原因になる場合があります。詳細は、第 23 章「メールサービス (リファレンス)」 の .forward ファイル を参照してください。
自動転送を禁止し、特定のホストの .forward ファイルを無効にするには、次の手順に従います。
スーパーユーザーになるか、それと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
/usr/lib/mail/domain/solaris-generic.m4 またはサイト固有のドメイン m4 ファイルのコピーを作成します。
# cd /usr/lib/mail/domain # cp solaris-generic.m4 mydomain.m4 |
選択するファイル名を指定
define(`confFORWARD_PATH',`')dnl |
m4 ファイルに confFORWARD_PATH の値がすでに存在する場合は、NULL 値で置き換えられます。
新しい構成ファイルを構築してインストールします。
この手順の詳細については、新しい sendmail.cf ファイルを構築する方法を参照してください。
.mc ファイルを編集する場合は、忘れずに DOMAIN(`solaris-generic') を DOMAIN(`mydomain') に変更してください。
たとえば、すべての .forward ファイルを共通ディレクトリに入れる場合は、次の手順に従います。
スーパーユーザーになるか、それと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
/usr/lib/mail/domain/solaris-generic.m4 またはサイト固有のドメイン m4 ファイルのコピーを作成します。
# cd /usr/lib/mail/domain # cp solaris-generic.m4 mydomain.m4 |
選択するファイル名を指定
次の行を作成したファイルに追加します。
define(`confFORWARD_PATH',`$z/.forward:/var/forward/$u')dnl |
m4 ファイルに confFORWARD_PATH の値がすでに存在する場合は、新しい値で置き換えられます。
新しい構成ファイルを構築してインストールします。
この手順の詳細については、新しい sendmail.cf ファイルを構築する方法を参照してください。
.mc ファイルを編集する場合は、忘れずに DOMAIN(`solaris-generic') を DOMAIN(`mydomain') に変更してください。
このファイルは標準リリースには含まれていません。.forward ファイルを使用してプログラムまたはファイルにメールを転送することをユーザーに許可する場合は、このファイルを追加する必要があります。grep を使用して、パスワードファイルにリストされたすべてのシェルを特定し、ファイルを手動で作成することができます。これにより、シェルをファイルに入力できます。しかし、次に示す、ダウンロード可能なスクリプトを使用する手順の方が簡単です。
スクリプトをダウンロードします。
スーパーユーザーになるか、それと同等の役割になります。
役割については、『Solaris のシステム管理 (セキュリティサービス)』の「特権付きアプリケーションの使用」を参照してください。
シェルのリストを作成するために、gen-etc-shells を実行します。
# ./gen-etc-shells.sh> /tmp/shells |
このスクリプトでは、getent コマンドを使用して、/etc/nsswitch.conf 内にリストされたパスワードファイルソースに組み込まれたシェルの名前を収集します。
/tmp/shells 内のシェルのリストを調べて編集します。
選択したエディタを使用し、組み込まないシェルを削除します。
ファイルを /etc/shells に移動します。
# mv /tmp/shells /etc/shells |
次の表では、メールサービスの障害追跡手順とヒントを説明します。
作業 |
説明 |
参照先 |
---|---|---|
メール構成をテストする |
sendmail 構成ファイルの変更をテストする手順 | |
メール別名を確認する |
指定された受信者にメールを配信できるかどうかを確認する手順 | |
ルールセットをテストする |
sendmail ルールセットの入力と戻りを確認する手順 | |
他のシステムへの接続を確認する |
他のシステムへの接続を確認するためのヒント | |
syslogd プログラムを使ってメッセージを記録する |
エラーメッセージ情報を収集するためのヒント | |
診断情報のその他の情報源を確認する |
他の情報源から診断情報を取得するためのヒント |
この節では、メールサービスの問題解決に使用できる手順とヒントをいくつか示します。
構成ファイルに対して行なった変更をテストするには、次の手順に従います。
変更した構成ファイルがあるシステムで sendmail を再起動します。
# /etc/init.d/sendmail restart |
各システムからテストメッセージを送信します。
# /usr/lib/sendmail -v names </dev/null |
受信者の電子メールアドレスを指定
このコマンドは、指定された受信者に NULL メッセージを送信し、画面にメッセージの動作を表示します。
メッセージを通常のユーザー名に送ることによって、メールを自分自身またはローカルシステム上の他の人に送信します。
(省略可能) ネットワークに接続している場合は、別のシステムの個人宛に次の 3 方向でメールを送信します。
メインシステムからクライアントシステムへ
クライアントシステムからメインシステムへ
クライアントシステムから別のクライアントシステムへ
(省略可能) メールゲートウェイがある場合、メールホストから別のドメインにメールを送信して、リレーメールプログラムおよびホストが適切に設定されていることを確認します。
(省略可能) 電話回線上で別のホストへの UUCP 接続を設定している場合は、そのホストのだれかにメールを送信します。メッセージを受信した時点で、メールを返信してもらうか、電話してもらいます。
UUCP 接続を介してメールを送信するように他の人に頼みます。
sendmail プログラムは、メッセージが配信されたかどうかは検出しません。これは、配信のためにプログラムがメッセージを UUCP に渡すためです。
異なるシステムからメッセージを 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 ルールセットの入力と戻りを確認するには、次の手順に従います。
アドレステストモードに変更します。
# /usr/lib/sendmail -bt |
メールアドレスをテストします。
最後のプロンプト (>) で次の数値とアドレスを入力します。
> 3,0 mail_address |
テストするメールアドレスを指定
セッションを終了します。
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 ポートに接続できない場合は、次の条件を確認してください。
システム負荷が高すぎないか
sendmail デーモンが動作しているか
システムに適切な /etc/mail/sendmail.cf ファイルがあるか
sendmail が使用するポート 25 がアクティブであるか
メールサービスは、syslogd プログラムを使って大部分のエラーメッセージを記録します。デフォルトでは、syslogd プログラムはこれらのメッセージを /etc/hosts ファイルで指定されている loghost というシステムに送信します。loghost が NIS ドメイン全体のすべてのログを保持するように定義できます。loghost を指定しなければ、syslogd からのエラーメッセージはレポートされません。
/etc/syslog.conf ファイルは、syslogd プログラムがメッセージをどこに転送するかを制御します。 /etc/syslog.conf ファイルを編集することにより、デフォルトの構成を変更できます。変更内容を有効にするには、syslog デーモンを再起動する必要があります。メールに関する情報を収集するために、ファイルに次の選択を追加できます。
mail.alert – ここで訂正する必要のある状態メッセージ
mail.crit – クリティカルメッセージ
mail.warning – 警告メッセージ
mail.notice – エラーではないが注意すべきメッセージ
mail.info – 情報メッセージ
mail.debug – デバッグメッセージ
/etc/syslog.conf ファイルの次のエントリは、すべての重大な情報を含むデバッグメッセージを /var/log/syslog に送信します。
mail.crit;mail.info;mail.debug /var/log/syslog |
システムログの各行には、タイムスタンプ、そのログ行を生成したシステム名、およびメッセージが入っています。syslog ファイルは、大量の情報を記録できます。
ログは、連続したレベルとして並べられます。最下位レベルでは、異常なイベントだけが記録されます。最上位レベルでは、もっとも必須なイベントと注目する必要のないイベントが記録されます。通常、10 以下のログレベルが「有用」とみなされます。10 を超えるログレベルは通常、デバッグに使用されます。loghost および syslogd プログラムの詳細については、『Solaris のシステム管理 (上級編)』の「システムのメッセージ記録のカスタマイズ」を参照してください。
その他の診断情報については、次の情報源を確認してください。
メッセージのヘッダーの Received 行を調べます。 これらの行は、メッセージがリレーされる時にとった経路を追跡できます。 時間帯の違いを考慮するのを忘れないでください。
ワークステーショングループの配信上の問題を記録するシステムログを確認します。sendmail プログラムは常に、その処理内容をシステムログに記録します。crontab ファイルを修正して、ログを調べるシェルスクリプトを夜間に実行できます。このスクリプトは、ログで SYSERR メッセージを検索し、検出したメッセージをポストマスターにメールで送信します。
mailstats プログラムを使ってメールタイプをテストし、着信メッセージと発信メッセージの数を判定します。
この節では、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 を参照してください。