この章ではメールサービスを設定し、管理する方法について説明します。メールサービスの管理に詳しくない場合は、メールサービスのコンポーネントを紹介している第 12 章メールサービス (概要)を参照してください。この章では、一般的なメールサービス構成についても説明しています (図 12–1 を参照)。この章では、次の関連作業について説明します。
メールサービスのコンポーネントについての詳細は、第 14 章メールサービス (リファレンス)を参照してください。また、この章では、メールサービスのプログラムとファイル、メールルーティング処理、ネームサービスを使った sendmail の対話型操作、sendmail(1M) のマニュアルページで十分に説明されていない sendmail の version 8.13 での機能についても説明します。
次の表から、具体的な一連の手順を扱っているほかの作業マップがわかります。
作業 |
説明 |
参照先 |
---|---|---|
メールサービスの設定 |
メールサービスの各コンポーネントを設定する手順。メールサーバー、メールクライアント、メールホスト、およびメールゲートウェイの設定方法について説明します。sendmail で DNS を利用する方法について説明します。 | |
sendmail 構成ファイルの変更 |
構成ファイルまたはサービスプロパティーを変更する手順。 | |
メール別名ファイルの管理 |
ネットワークで別名を提供するための手順。NIS+ テーブルのエントリの管理方法を説明します。また、NIS マップ、ローカルメール別名、キー付きマップファイル、およびポストマスター別名の設定方法も説明します。 | |
メールキューの管理 |
スムーズなキュー処理を提供するための手順。メールキューを表示したり移動したりする方法、強制的なメールキュー処理方法、およびメールキューのサブセットの実行方法について説明します。古いメールキューの実行方法についても説明します。 | |
.forward ファイルの管理 |
.forward ファイルを無効にしたり、.forward ファイルの検索パスを変更したりする手順。/etc/shells を作成し生成することにより、.forward ファイルの使用をユーザーに許可する方法も説明します。 | |
メールサービスのトラブルシューティング手順とヒント |
メールサービスで発生した問題を解決するための手順とヒント。メール構成のテスト、メール別名の確認、sendmail ルールセットのテスト、ほかのシステムへの接続の確認、メッセージの記録などの方法について学びます。ほかのメール診断情報の情報源も紹介します。 | |
エラーメッセージの解釈処理 |
メール関連のエラーメッセージを解釈処理するための情報。 |
次に、メールシステムを計画するときに考慮すべき点を挙げます。
必要に応じてメール構成のタイプを決定します。この節では、メール構成の基本の 2 タイプについて説明し、各構成を設定するために必要なことがらについて簡単に説明します。新しいメールシステムを設定する必要がある場合、あるいは既存のメールシステムを拡張する場合は、この節の内容が役立つでしょう。「ローカルメール専用」では 1 番目の構成タイプについて、「ローカルメールとリモート接続」では 2 番目の構成タイプについて説明します。
必要に応じてメールサーバー、メールホスト、およびメールゲートウェイとして動作するシステムを選択します。
サービスを提供するすべてのメールクライアントのリストを作成し、メールボックスの場所も含めます。このリストは、ユーザーのメール別名を作成するときに役立ちます。
別名の更新方法とメールメッセージの転送方法を決めます。ユーザーがメールの転送要求を送る場所として、 aliases メールボックスを設定できます。ユーザーはこのメールボックスを使って、デフォルトのメール別名の変更要求を送ることもできます。システムで NIS または NIS+ を使用する場合、メール転送の管理は、ユーザー自身ではなく、管理者が行うこともできます。「メール別名ファイルの管理 (作業マップ)」に、別名に関連する作業の一覧があります。「.forward ファイルの管理 (作業マップ)」に、.forward ファイルの管理に関連する作業の一覧があります。
メールシステムの計画を立てたら、サイトにシステムを設定し、「メールサービスの設定 (作業マップ)」で説明する機能を実行します。ほかの作業については、「メールサービス (作業マップ)」を参照してください。
図 13–1 に示すように、もっとも単純なメール構成は、1 台のメールホストに 2 台以上のワークステーションが接続されている場合です。メールは完全にローカルです。すべてのクライアントがローカルのディスクにメールを格納し、すべてのクライアントがメールサーバーとして機能します。メールアドレスは /etc/mail/aliases ファイルを使って構文解析されます。
この種類のメール構成を設定するには、次が必要です。
メールホストとして指定されたサーバー。NIS または NIS+ を実行している場合に、この指定を行うには、メールホスト上の /etc/hosts ファイルに mailhost. domain-name を追加します。DNS や LDAP など、別のネームサービスを実行している場合は、/etc/hosts ファイルに追加情報を入力します。「メールホストを設定する方法」を参照してください。
NIS や NIS+ 以外のネームサービスを使用している場合は、ローカルメールボックスのあるすべてのシステム上に、対応する /etc/mail/aliases ファイルが必要です。
各メールクライアントシステムの /var/mail に、メールボックスを格納できるだけの十分な領域。
メールサービスの設定の詳細については、「メールサービスを設定する」を参照してください。メールサービスの設定に関する特定の手順については、「メールサービスの設定 (作業マップ)」を参照してください。
小規模のネットワークにおけるもっとも一般的なメール構成を図 13–2 に示します。1 つのシステムが、メールサーバー、メールホスト、およびリモート接続を行うメールゲートウェイを兼ねています。メールは、メールゲートウェイ上の /etc/mail/aliases ファイルを使って配布されます。ネームサービスは必要ありません。
この構成では、メールクライアントがメールホスト上の /var/mail からメールファイルをマウントすると想定できます。この種類のメール構成を設定するには、次が必要です。
各メールクライアントシステム上に、デフォルトの /etc/mail/sendmail.cf ファイル。このファイルは編集不要です。
メールホストとして指定されたサーバー。NIS または NIS+ を実行している場合に、この指定を行うには、メールホスト上の /etc/hosts ファイルに mailhost. domain-name を追加します。DNS や LDAP など、別のネームサービスを実行している場合は、/etc/hosts ファイルに追加情報を入力します。「メールホストを設定する方法」を参照してください。
NIS や NIS+ 以外のネームサービスを使用している場合は、ローカルメールボックスのあるすべてのシステム上に、対応する /etc/mail/aliases ファイルが必要です。
メールサーバーの /var/mail に、クライアントのメールボックスを格納できるだけの十分な領域。
メールサービスの設定の詳細については、「メールサービスを設定する」を参照してください。メールサービスの設定に関する特定の手順については、「メールサービスの設定 (作業マップ)」を参照してください。
作業 |
説明 |
参照先 |
---|---|---|
メールサーバーを設定する |
サーバーがメールを経路指定できるようにする手順 | |
メールクライアントを設定する |
ユーザーがメールを受信できるようにする手順 | |
メールホストを設定する |
電子メールアドレスを解釈処理できるメールホストを確立する手順 | |
メールゲートウェイを設定する |
ドメイン外のネットワークとの通信を管理する手順 | |
sendmail で DNS を使用する |
DNS ホストルックアップ機能を有効にする手順 |
サイトが企業外の電子メールサービスに接続していないか、あるいは企業が 1 つのドメイン内にある場合は、メールサービスを比較的容易に設定できます。
ローカルメール用に 2 つのタイプの構成が必要です。これらの構成については、図 13–1の「ローカルメール専用」 を参照してください。ドメイン外のネットワークと通信するためには、さらに 2 つのタイプの構成が必要です。これらの構成については、図 12–1の「ハードウェアコンポーネントの概要」 または 図 13–2の「ローカルメールとリモート接続」 を参照してください。これらの構成は、同じシステムで組み合わせるか、または別のシステムで提供できます。たとえば、同じシステムにメールホストとメールサーバーの機能を持たせる場合は、この節の説明に従って、まずそのシステムをメールホストとして設定します。次に、この節の説明に従って、同じシステムをメールサーバーとして設定します。
次のメールサーバーとメールクライアントの設定の手順は、メールボックスが NFS でマウントされているときに適用されます。ただし、メールボックスは通常、ローカルにマウントされた /var/mail ディレクトリで維持されるので、次の手順は必要ありません。
メールサーバーはローカルユーザーにメールサービスを提供するだけなので、設定には特別な手順は必要ありません。ユーザーはパスワードファイルまたは名前空間にエントリが必要です。さらに、メールが配信されるためには、ユーザーはローカルのホームディレクトリを用意して、~/.forward ファイルを確認する必要があります。このため、ホームディレクトリサーバーがしばしばメールサーバーとして設定されます。メールサーバーについては、「ハードウェアコンポーネント」の 第 14 章メールサービス (リファレンス)でさらに詳しく説明します。
メールサーバーは、メールクライアント宛てにメールを経路指定します。このタイプのメールサーバーは、クライアントのメールボックス用に十分なスプール空間が必要です。
mail.local プログラムは、メッセージがはじめて配信された時に /var/mail ディレクトリでメールボックスを自動的に作成します。メールクライアントの個々のメールボックスを作成する必要はありません。
クライアントが自分のメールボックスにアクセスするには、/var/mail ディレクトリをリモートマウントに利用できなければなりません。または、POP (Post Office Protocol)、IMAP (Internet Message Access Protocol) などのサービスをサーバーから利用できなければなりません。次では、/var/mail ディレクトリを使ってメールサーバーを設定する方法を示します。このマニュアルでは、POP または IMAP の構成方法については説明しません。
次の作業のために、/var/mail ディレクトリがエクスポートされていることを /etc/dfs/dfstab ファイルで確認します。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
sendmail を停止します。
# svcadm disable -t network/smtp:sendmail |
/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 を再起動します。
# svcadm enable network/smtp:sendmail |
メールクライアントは、メールサーバー上にメールボックスを持っている、メールサービスのユーザーです。メールクライアントにはさらに、/etc/mail/aliases ファイルで、メールボックスの位置を示すメール別名が設定されています。
POP (Post Office Protocol) または IMAP (Internet Message Access Protocol) のようなサービスを使ってメールクライアントを設定することもできます。ただし、POP または IMAP の構成方法については、このマニュアルでは説明していません。
メールクライアントシステム上でスーパーユーザーになるか、同等の役割になります。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
sendmail を停止します。
# svcadm disable -t network/smtp:sendmail |
メールクライアントのシステムで /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 を再起動します。
# svcadm enable network/smtp:sendmail |
メールホストは、電子メールアドレスを解決し、ドメイン内でメールを再度ルーティングします。メールホストに適しているのは、ネットワークにリモート接続を提供するシステム、または親ドメインにネットワークを接続するシステムです。次に、メールホストを設定する手順を示します。
メールホストシステム上でスーパーユーザーになるか、同等の役割になります。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
sendmail を停止します。
# svcadm disable -t network/smtp:sendmail |
ホスト名の構成を確認します。
次のように check-hostname スクリプトを実行し、sendmail が、このサーバーの完全指定のホスト名を識別できるかどうかを確認します。
% /usr/sbin/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.13.1+Sun Compiled with: LDAPMAP MAP_REGEX LOG MATCHGECOS MIME7TO8 MIME8TO7 NAMED_BIND NDBM NETINET NETINET6 NETUNIX NEWDB NIS NISPLUS QUEUE SCANF SMTP USERDB XDEBUG ============ SYSTEM IDENTITY (after readcf) ============ (short domain name) $w = phoenix (canonical domain name) $j = phoenix.example.com (subdomain name) $m = example.com (node name) $k = phoenix ======================================================== |
以上の変更を行なったあとの hosts ファイルの例を次に示します。
# cat /etc/hosts # # Internet host table # 172.31.255.255 localhost 192.168.255.255 phoenix mailhost mailhost.example.com loghost |
(省略可能) NIS または NIS+ を使用しない場合は、ネットワーク内の各システムにある /etc/hosts ファイルを編集します。
次のようなエントリを作成します。
IP-address mailhost mailhost mailhost.domain loghost |
sendmail を再起動します。
# svcadm enable network/smtp:sendmail |
メール構成をテストします。
手順については、「メール構成をテストする方法」を参照してください。
メールホストの詳細は、「ハードウェアコンポーネント」の 第 14 章メールサービス (リファレンス)を参照してください。
メールゲートウェイは、ドメイン外のネットワークとの通信を管理します。送信側メールゲートウェイ上のメールプログラムは、受信側システムのメールプログラムと同じでなければなりません。
メールゲートウェイに適しているのは、Ethernet および電話回線に接続されているシステムです。インターネットへのルーターとして設定されているシステムも適しています。メールホストをメールゲートウェイとして設定するか、あるいは別のシステムをメールゲートウェイとして設定できます。複数のメールゲートウェイを自分のドメイン用として設定できます。UUCP (UNIX-to-UNIX Copy Program) 接続がある場合は、メールゲートウェイとして UUCP 接続を使ってシステムを構成します。
メールゲートウェイ上でスーパーユーザーになるか、同等の役割になります。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
sendmail を停止します。
# svcadm disable -t network/smtp:sendmail |
ホスト名の構成を確認します。
次のように check-hostname スクリプトを実行し、sendmail が、このサーバーの完全指定のホスト名を識別できるかどうかを確認します。
# /usr/sbin/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 を再起動します。
# svcadm enable network/smtp:sendmail |
メール構成をテストします。
手順については、「メール構成をテストする方法」を参照してください。
メールゲートウェイの詳細は、「ハードウェアコンポーネント」の 第 14 章メールサービス (リファレンス)を参照してください。
DNS ネームサービスは、個別の別名をサポートしません。このネームサービスは、MX (メール交換局) レコードおよび CNAME レコードを使用するホストまたはドメインの別名をサポートします。ホスト名とドメイン名は両方またはいずれか一方を DNS データベースで指定できます。sendmail と DNS の詳細は、「sendmail とネームサービスの相互作用」の 第 14 章メールサービス (リファレンス)、または『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
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) のマニュアルページを参照してください。
作業 |
説明 |
参照先 |
---|---|---|
sendmail 構成ファイルの構築 |
sendmail.cf ファイルを変更する手順。例としてドメインマスカレードを有効にする方法を取り上げます。 | |
仮想ホストの設定 |
メールが複数のドメインに受け入れられるように sendmail を設定する手順。 | |
sendmail 構成ファイルの自動再構築の設定 |
アップグレード後に sendmail.cf および submit.mc 構成ファイルが自動的に再構築されるように sendmail サービスを変更する手順。 | |
sendmail のオープンモードでの実行 |
オープンモードが有効になるように sendmail サービスのプロパティーを変更する手順。 | |
Transport Layer Security (TLS) を使用する SMTP の設定 |
SMTP を有効にして TLS との接続をセキュリティー保護する手順。 | |
代替構成を使用したメール配信の管理 |
マスターデーモンが無効な場合に発生する可能性があるメール配信上の問題を防ぐための手順。 |
「新しい sendmail.cf ファイルを構築する方法」で、構成ファイルの構築方法について説明します。sendmail.cf ファイルの以前のバージョンも引き続き使用できますが、新しい形式を使用することをお薦めします。
/etc/mail/cf/README。構成手順の詳細な説明です。
http://www.sendmail.org。sendmail 構成に関するオンライン情報です。
「構成ファイルのバージョン」の 「sendmail 構成ファイル」 と 第 14 章メールサービス (リファレンス)。いくつかのガイダンスを示します。
次に、新しい構成ファイルを構築する手順を示します。
/usr/lib/mail/cf/main-v7sun.mc は、/etc/mail/cf/cf/sendmail.mc になりました。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
sendmail を停止します。
# svcadm disable -t network/smtp:sendmail |
変更しようとする構成ファイルのコピーを作成します。
# cd /etc/mail/cf/cf # cp sendmail.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 サービスを再起動します。
# svcadm enable network/smtp:sendmail |
ホストに複数の IP アドレスを割り当てる必要がある場合は、http://www.sendmail.org/tips/virtualHosting の Web サイトを参照してください。このサイトでは、sendmail を使って仮想ホストを設定する方法を詳しく説明しています。ただし、「Sendmail Configuration」の節では、次に示す手順 3b は実行しないでください。
# cd sendmail-VERSION/cf/cf # ./Build mailserver.cf # cp mailserver.cf /etc/mail/sendmail.cf |
代わりに、Solaris オペレーティングシステムでは、次の手順を実行してください。
# cd /etc/mail/cf/cf # /usr/ccs/bin/make mailserver.cf # cp mailserver.cf /etc/mail/sendmail.cf |
.cf ファイルの名前を指定します。
「sendmail 構成を変更する」では、構築手順の一部として、これと同じ 3 つの手順を説明しています。
/etc/mail/sendmail.cf ファイルを生成したら、次の手順に進み、仮想ユーザーテーブルを作成できます。
sendmail.cf または submit.cf のコピーを独自に構築済みであれば、アップグレード時に構成ファイルが置き換えられることはありません。次の手順は、sendmail.cf ファイルが自動的に再構築されるように sendmail サービスのプロパティーを構成する方法を示します。submit.cf 構成ファイルを自動的に再構築する方法については、例 13–1 を参照してください。両方のファイルの構築が必要な場合には、これらの手順を組み合わることもできます。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
sendmail プロパティーを設定します。
# svccfg -s sendmail svc:/network/smtp:sendmail> setprop config/path_to_sendmail_mc=/etc/mail/cf/cf/myhost.mc svc:/network/smtp:sendmail> quit |
sendmail サービスの再表示と再起動を行います。
最初のコマンドは、変更を実行中のスナップショット内に転送します。2 番目のコマンドは、新しいオプションを使って sendmail サービスを再起動します。
# svcadm refresh svc:/network/smtp:sendmail # svcadm restart svc:/network/smtp:sendmail |
この手順では、submit.mc 構成ファイルが自動的に再構築されるように sendmail サービスを構成します。
# svccfg -s sendmail-client:default svc:/network/smtp:sendmail> setprop config/path_to_submit_mc=/etc/mail/cf/cf/submit-myhost.mc svc:/network/smtp:sendmail> exit # svcadm refresh svc:/network/sendmail-client # svcadm restart svc:/network/sendmail-client |
Solaris 10 リリースでは、sendmail サービスがデフォルトでローカル専用モードで実行するように変更されました。ローカル専用モードとは、ローカルホストからのメールだけが受け入れられることを意味します。その他のシステムからのメッセージはすべて拒否されます。Solaris の以前のリリースは、すべてのリモートシステムからのメールを受け入れるように構成されていました。これはオープンモードとして知られています。オープンモードを使用するには、次の手順に従います。
ローカル専用モードでの sendmail の実行は、オープンモードでの実行よりもはるかに安全です。潜在的なセキュリティーの問題を確実に認識した上で、この手順を実行してください。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
sendmail プロパティーを設定します。
# svccfg -s sendmail svc:/network/smtp:sendmail> setprop config/local_only = false svc:/network/smtp:sendmail> quit |
sendmail サービスの再表示と再起動を行います。
# svcadm refresh svc:/network/smtp:sendmail # svcadm restart svc:/network/smtp:sendmail |
Solaris 10 1/06 以降のリリースでは、SMTP は sendmail の version 8.13 で Transport Layer Security (TLS) を使用できます。SMTP サーバーおよびクライアントに対するこのサービスは、インターネット上での機密性の高い認証された通信だけでなく、盗聴や攻撃からの保護も実現します。このサービスは、デフォルトでは有効になっていないことに注意してください。
次の手順では、サンプルデータを使用して、sendmail が TLS を使用できるようにする証明書を設定する方法を示します。詳細については、「sendmail の version 8.13 で TLS を使用して SMTP を実行するためのサポート」を参照してください。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
sendmail を停止します。
# svcadm disable -t network/smtp:sendmail |
sendmail が TLS を使用できるようにする証明書を設定します。
次の手順を行います。
# cd /etc/mail # mkdir -p certs/CA # cd certs/CA # mkdir certs crl newcerts private # echo "01" > serial # cp /dev/null index.txt # cp /etc/sfw/openssl/openssl.cnf . |
任意のテキストエディタを使用して openssl.cnf ファイルの dir の値を /etc/sfw/openssl から /etc/mail/certs/CA に変更します。
openssl コマンド行ツールを使用して TLS を実装します。
次のコマンド行は対話型テキストを生成することに注意してください。
# openssl req -new -x509 -keyout private/cakey.pem -out cacert.pem -days 365 \ -config openssl.cnf Generating a 1024 bit RSA private key .....................................++++++ .....................................++++++ writing new private key to 'private/cakey.pem' Enter PEM pass phrase: Verifying - Enter PEM pass phrase: ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) []:US State or Province Name (full name) []:California Locality Name (eg, city) []:Menlo Park Organization Name (eg, company) [Unconfigured OpenSSL Installation]:Sun Microsystems Organizational Unit Name (eg, section) []:Solaris Common Name (eg, YOUR name) []:somehost.somedomain.example.com Email Address []:someuser@example.com |
このコマンドは証明書要求を作成し、処理します。
この req オプションを選択すると、新しい証明書要求が作成されます。
この req オプションを選択すると、自己署名付き証明書が作成されます。
この req オプションを選択すると、新しく作成された秘密鍵のファイル名として private/cakey.pem を割り当てることができます。
この req オプションを選択すると、出力ファイルとして cacert.pem を割り当てることができます。
この req オプションを選択すると、証明書を 365 日間証明することができます。デフォルト値は 30 です。
この req オプションを選択すると、構成ファイルとして openssl.cnf を指定することができます。
このコマンドは、次の内容を指定する必要があります。
Country Name (US など)。
State or Province Name (California など)。
Locality Name (Menlo Park など)。
Organization Name (Sun Microsystems など)。
Organizational Unit Name (Solaris など)。
Common Name (マシンの完全指定のホスト名)。詳細は、check-hostname(1M) のマニュアルページを参照してください。
Email Address (someuser@example.com など)。
(省略可能) セキュリティー保護された新しい接続が必要である場合、新しい証明書を作成し、認証局を使用して新しい証明書に署名します。
新しい証明書を作成します。
# cd /etc/mail/certs/CA # openssl req -nodes -new -x509 -keyout newreq.pem -out newreq.pem -days 365 \ -config openssl.cnf Generating a 1024 bit RSA private key ..............++++++ ..............++++++ writing new private key to 'newreq.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) []:US State or Province Name (full name) []:California Locality Name (eg, city) []:Menlo Park Organization Name (eg, company) [Unconfigured OpenSSL Installation]:Sun Microsystems Organizational Unit Name (eg, section) []:Solaris Common Name (eg, YOUR name) []:somehost.somedomain.example.com Email Address []:someuser@example.com |
このコマンドでは、手順 3c で指定した情報と同じ情報を指定する必要があります。
この例では、証明書と秘密鍵はファイル newreq.pem 内にあることに注意してください。
認証局を使用して新しい証明書に署名します。
# cd /etc/mail/certs/CA # openssl x509 -x509toreq -in newreq.pem -signkey newreq.pem -out tmp.pem Getting request Private Key Generating certificate request # openssl ca -config openssl.cnf -policy policy_anything -out newcert.pem -infiles tmp.pem Using configuration from openssl.cnf Enter pass phrase for /etc/mail/certs/CA/private/cakey.pem: Check that the request matches the signature Signature ok Certificate Details: Serial Number: 1 (0x1) Validity Not Before: Jun 23 18:44:38 2005 GMT Not After : Jun 23 18:44:38 2006 GMT Subject: countryName = US stateOrProvinceName = California localityName = Menlo Park organizationName = Sun Microsystems organizationalUnitName = Solaris commonName = somehost.somedomain.example.com emailAddress = someuser@example.com X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 93:D4:1F:C3:36:50:C5:97:D7:5E:01:E4:E3:4B:5D:0B:1F:96:9C:E2 X509v3 Authority Key Identifier: keyid:99:47:F7:17:CF:52:2A:74:A2:C0:13:38:20:6B:F1:B3:89:84:CC:68 DirName:/C=US/ST=California/L=Menlo Park/O=Sun Microsystems/OU=Solaris/\ CN=someuser@example.com/emailAddress=someuser@example.com serial:00 Certificate is to be certified until Jun 23 18:44:38 2006 GMT (365 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated # rm -f tmp.pem |
この例では、ファイル newreq.pem には未署名の証明書と秘密鍵が含まれています。ファイル newcert.pem には署名済みの証明書が含まれています。
証明書の情報を表示し、証明書をさまざまな形式に変換し、証明書要求に署名します。
さまざまな形式の証明書要求の署名と、CRL (Certificate Revocation List) の生成に使用されます。
.mc ファイルに次の行を追加することにより、sendmail が証明書を使用できるようにします。
define(`confCACERT_PATH', `/etc/mail/certs')dnl define(`confCACERT', `/etc/mail/certs/CAcert.pem')dnl define(`confSERVER_CERT', `/etc/mail/certs/MYcert.pem')dnl define(`confSERVER_KEY', `/etc/mail/certs/MYkey.pem')dnl define(`confCLIENT_CERT', `/etc/mail/certs/MYcert.pem')dnl define(`confCLIENT_KEY', `/etc/mail/certs/MYkey.pem')dnl |
詳細は、「TLS を使用して SMTP を実行するための構成ファイルのオプション」を参照してください。
/etc/mail ディレクトリで sendmail.cf ファイルを再構築し、インストールします。
手順の詳細は、「sendmail 構成を変更する」を参照してください。
openssl を使用して作成したファイルから、.mc ファイルで定義したファイルへの、シンボリックリンクを作成します。
# cd /etc/mail/certs # ln -s CA/cacert.pem CAcert.pem # ln -s CA/newcert.pem MYcert.pem # ln -s CA/newreq.pem MYkey.pem |
セキュリティーを高めるには、MYkey.pem に関して、グループなどに対して読み取り権を許可しないでください。
# chmod go-r MYkey.pem |
シンボリックリンクを使用して、confCACERT_PATH に割り当てられているディレクトリで CA 証明書をインストールします。
# C=CAcert.pem # ln -s $C `openssl x509 -noout -hash < $C`.0 |
そのほかのホストとのメールのセキュリティーを保護するには、ホストの証明書をインストールします。
sendmail を再起動します。
# svcadm enable network/smtp:sendmail |
次に、TLS を使用したセキュリティー保護されたメールの Received: ヘッダーの例を示します。
Received: from his.example.com ([IPv6:2001:db8:3c4d:15::1a2f:1a2b]) by her.example.com (8.13.4+Sun/8.13.4) with ESMTP id j2TNUB8i242496 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for <janepc@her.example.com>; Tue, 29 Mar 2005 15:30:11 -0800 (PST) Received: from her.example.com (her.city.example.com [192.168.0.0]) by his.example.com (8.13.4+Sun/8.13.4) with ESMTP id j2TNU7cl571102 version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for <janepc@her.example.com>; Tue, 29 Mar 2005 15:30:07 -0800 (PST) |
verify の値が OK である、つまり認証が成功したことに注意してください。詳細は、「TLS を使用して SMTP を実行するためのマクロ」を参照してください。
次の OpenSSL のマニュアルページも参照してください。
送受信されるメールの転送を容易にするため、sendmail の新しいデフォルトの構成は、デーモンとクライアントキューランナーを使用します。クライアントキューランナーは、ローカルの SMTP ポートのデーモンにメールを送信できなければなりません。デーモンが SMTP ポート上で待機していない場合、メールはキューに留まります。この問題を避けるには、次の作業を行います。デーモンとクライアントキューランナーについての詳細、およびこの代替構成を使用する必要性を理解するには、「sendmail の version 8.12 からの submit.cf 構成ファイル」を参照してください。
この手順を実行すると、デーモンは、ローカルホストからの接続を受け付けるためだけに動作するようになります。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
sendmail クライアントサービスを停止します。
# svcadm disable -t sendmail-client |
変更しようとする構成ファイルのコピーを作成します。
# cd /etc/mail/cf/cf # cp submit.mc submit-myhost.mc |
.mc ファイルの新しい名前を指定します。
新しい構成ファイル (たとえば、submit- myhost.mc) を編集します。
待機中のホスト IP アドレスを msp 定義に変更します。
# grep msp submit-myhost.mc FEATURE(`msp', `[#.#.#.#]')dnl |
m4 を使って構成ファイルを構築します。
# /usr/ccs/bin/make submit-myhost.cf |
オリジナルのコピーを作成したあと、新しい構成ファイルをインストールします。
# cp /etc/mail/submit.cf /etc/mail/submit.cf.save # cp submit-myhost.cf /etc/mail/submit.cf |
sendmail クライアントサービスを再起動します。
# svcadm enable sendmail-client |
次の表では、メール別名ファイルの管理の手順を説明します。このトピックの詳細は、「メール別名ファイル」の 第 14 章メールサービス (リファレンス)を参照してください。
作業 |
説明 |
参照先 |
---|---|---|
NIS+ mail_aliases テーブルでの別名のエントリの管理 |
ネームサービスが NIS+ である場合に、mail_aliases テーブルの内容を管理する手順。 NIS+ mail_aliases テーブルを作成します。 | |
NIS+ mail_aliases テーブルの内容を表示します。 この手順には、個々のエントリを表示する方法と部分一致エントリを表示する方法の例が含まれています。 | ||
コマンド行から NIS+ mail_aliases テーブルへ別名を追加します。 | ||
NIS+ mail_aliases テーブルを編集してエントリを追加します。 | ||
NIS+ mail_aliases テーブルでエントリを編集します。 この手順には、エントリを削除する方法の例が含まれています。 | ||
NIS mail.aliases マップの設定 |
ネームサービスが NIS の場合に、mail.aliases マップを使って別名を設定する手順。 | |
ローカルのメール別名ファイルの設定 |
NIS や NIS+ などのネームサービスを使用していない場合に、/etc/mail/aliases ファイルを使って別名を設定する手順。 | |
キー付きマップファイルの作成 |
キー付きマップファイルを使って別名を設定する手順。 | |
postmaster 別名の設定 |
postmaster 別名を管理する手順。この別名は必須です。 |
メール別名はドメイン独自にする必要があります。この節では、メール別名ファイルを管理する手順を説明します。また、Solaris 管理コンソールの「メーリングリスト」機能を使って別名データベース上でこれらの作業を実行することもできます。
その他に、makemap を使ってローカルメールホストにデータベースファイルを作成することもできます。makemap(1M) のマニュアルページを参照してください。ローカルのデータベースファイルを使用しても、NIS や NIS+ のようなネームサービスを使用するほどの利点は得られません。しかし、ネットワークのルックアップは必要ないため、ローカルのデータベースファイルからの方がより早くデータを取り出すことができます。詳細は、「sendmail とネームサービスの相互作用」の 「メール別名ファイル」および 第 14 章メールサービス (リファレンス)を参照してください。
次の操作を行うことができます。
aliasadm コマンドを使用して、NIS+ テーブルのエントリを管理することができます。テーブルを作成するには、次の手順に従います。詳細は、aliasadm(1M) のマニュアルページを参照してください。
テーブルを所有する NIS+ グループのメンバーになるか、メールサーバーのスーパーユーザーになるか、同等の役割になります。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
NIS+ テーブルを作成します。
# aliasadm -I |
テーブルにエントリを追加します。
2 つまたは 3 つの別名を追加する方法については、「コマンド行から NIS+ mail_aliases テーブルへ別名を追加する方法」を参照してください。
多数の別名を追加する方法については、「NIS+ mail_aliases テーブルを編集してエントリを追加する方法」を参照してください。
テーブルを所有する NIS+ グループのメンバーになるか、メールサーバーのスーパーユーザーになるか、同等の役割になります。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
別名のアルファベット順に全エントリを表示します。
# aliasadm -1 |
詳細は、aliasadm(1M) のマニュアルページを参照してください。
また、aliasadm コマンドを使用して、個々のエントリを表示することもできます。この手順の最初の手順が完了したら、次のように入力します。
# aliasadm -m ignatz ignatz: ignatz@saturn # Alias for Iggy Ignatz |
このコマンドは、完全に一致する別名のみ表示し、部分的に一致するエントリは表示しません。aliasadm -m オプションでは、メタキャラクタ (*、? など) は使用できません。
また、aliasadm コマンドを使用して、部分一致エントリを表示することもできます。この手順の最初の手順が完了したら、次のように入力します。
# aliasadm -l | grep partial-string |
partial-string は、検索に使用する文字列で置き換えます。
2 つまたは 3 つの別名をテーブルに追加するには、次の手順に従います。多数の別名を追加する場合は、「NIS+ mail_aliases テーブルを編集してエントリを追加する方法」を参照してください。
メールクライアント、メールボックスの場所、およびメールサーバーシステムの名前の各リストをコンパイルします。
テーブルを所有する NIS+ グループのメンバーになるか、メールサーバーのスーパーユーザーになるか、同等の役割になります。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
(省略可能) 必要な場合は、NIS+ テーブルを作成します。
まったく新しい NIS+ mail_aliases テーブルを作成する場合は、最初に NIS+ テーブルを初期設定しなければなりません。テーブルの作成方法については、「NIS+ mail_aliases テーブルを作成する方法」を参照してください。
テーブルに別名を追加します。
次に、一般的なエントリの例を示します。
# aliasadm -a iggy iggy.ignatz@saturn "Iggy Ignatz" |
上記の例の入力内容を次に説明します。
別名を追加するためのオプション
簡略別名
拡張別名
引用符で囲んだ別名
作成したエントリを表示し、エントリに間違いがないことを確認します。
# aliasadm -m alias |
作成したエントリ
詳細は、aliasadm(1M) のマニュアルページを参照してください。
aliasadm コマンドを使用して、NIS+ テーブルのエントリを管理することができます。多数の別名をテーブルに追加するには、次の手順に従います。
メールクライアント、メールボックスの場所、およびメールサーバーシステムの名前の各リストをコンパイルします。
テーブルを所有する NIS+ グループのメンバーになるか、メールサーバーのスーパーユーザーになるか、同等の役割になります。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
別名テーブルを表示して編集します。
# aliasadm -e |
このコマンドは、テーブルを表示し、テーブルの編集を可能にします。使用するエディタは、$EDITOR 環境変数で設定されています。この変数が設定されていない場合、vi がデフォルトのエディタになります。
次の形式で、1 行に 1 別名ずつ入力します。
alias: expanded-alias # ["option" # "comments"] |
この列には、簡略別名を入力します。
この列には、拡張別名を入力します。
この列は、将来の拡張のために予約されています。
この列は、別名など、個々の別名に関するコメントに使用します。
オプション列をブランクにする場合は、空の引用符 2 つ ("") を入力し、そのあとにコメントを追加します。
NIS+ mail_aliases テーブルでは、エントリの順序は重要ではありません。aliasadm -l コマンドがリストをソートし、エントリをアルファベット順に表示します。
詳細は、「メール別名ファイル」および aliasadm(1M) のマニュアルページを参照してください。
テーブルを所有する NIS+ グループのメンバーになるか、メールサーバーのスーパーユーザーになるか、同等の役割になります。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
別名エントリを表示します。
# aliasadm -m alias |
alias は、割り当てられている別名で置き換えます。
必要に応じて別名エントリを編集します。
# aliasadm -c alias expanded-alias [options comments] |
必要な場合は、別名を編集します。
必要な場合は、拡張別名を編集します。
必要な場合は、オプションを編集します。
必要な場合は、このエントリのコメントを編集します。
詳細は、aliasadm(1M) のマニュアルページおよび 「メール別名ファイル」を参照してください。
編集したエントリを表示し、エントリに間違いがないことを確認します。
# aliasadm -m alias |
詳細は、aliasadm(1M) のマニュアルページを参照してください。
テーブルからエントリを削除するには、この手順の最初の手順の完了後、次の構文を入力します。
# aliasadm -d alias |
alias は、削除するエントリの別名で置き換えます。
次の手順によって、NIS の mail.aliases マップを使って別名の設定を容易に行うことができます。
メールクライアント、メールボックスの場所、およびメールサーバーシステムの名前の各リストをコンパイルします。
NIS マスターサーバーのスーパーユーザーになるか、同等の役割になります。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
/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 のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
/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 および /etc/mail/aliases.db ファイルをほかの各システムにコピーします。
rcp または rdist コマンドを使用してこれらのファイルをコピーできます。詳細は、rcp(1) のマニュアルページまたは rdist(1) のマニュアルページを参照してください。また、この目的のためのスクリプトを作成することもできます。
これらのファイルをコピーしたら、newaliases コマンドをほかの各システムで実行する必要はありません。ただし、メールクライアントを追加または削除するたびにすべての /etc/mail/aliases ファイルを更新する必要があるので注意してください。
キー付きマップファイルを作成するには、次の手順に従います。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
エントリには、次の構文を使用できます。
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 のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
/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 のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
postmaster として指定された個人のアカウントを作成します。パスワードフィールドにアスタリスク (*) を入力します。
ユーザーアカウントの追加の詳細については、『Solaris のシステム管理 (基本編)』の第 5 章「ユーザーアカウントとグループの管理 (手順)」を参照してください。
メールが配信されたら、mail プログラムがメールボックス名に読み書きできるようにします。
# mail -f postmaster |
割り当てられているアドレスを指定します。
postmaster メールボックスを /etc/mail/aliases ファイル内の別名に追加する場合は、次の手順に従います。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
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 の実行 |
古いメールキューを実行する手順。 |
この節では、キューの管理に役立つ作業について説明します。クライアント専用のキューの詳細については、「sendmail の version 8.12 からの submit.cf 構成ファイル」を参照してください。ほかの関連情報については、「sendmail の version 8.12 から追加されたキューの機能」を参照してください。
次を参照してください。
キューにあるメッセージの数とそれらのメッセージがキューから消去されるのにかかる時間を表示します。
次の行を入力します。
# /usr/bin/mailq | more |
このコマンドは、次の情報を表示します。
キュー ID
メッセージのサイズ
メッセージがキューに入った日付
メッセージの状態
送信者と受信者
さらに、このコマンドは、承認属性 solaris.admin.mail.mailq を確認します。確認が取れると、sendmail で -bp フラグを指定するのと同じ処理が実行されます。確認ができない場合は、エラーメッセージが表示されます。デフォルトでは、この承認属性はすべてのユーザーで使用できるようになっています。承認属性は、prof_attr 内のユーザーエントリを変更することにより無効にできます。詳細は、prof_attr(4) および mailq(1) のマニュアルページを参照してください。
たとえば、以前にメッセージを受信できなかったシステムへのメッセージを処理するには、次の手順に従います。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
キューを強制処理し、キューが消去されるとジョブの進捗状況を表示します。
# /usr/lib/sendmail -q -v |
たとえば、ホスト名など、アドレスの部分文字列を強制的に処理するには、次の手順に従います。また、特定のメッセージをキューから強制的に処理するにも、次の手順に従います。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
-qRstring を使用して、いつでもメールキューのサブセットを実行できます。
# /usr/lib/sendmail -qRstring |
受信者の別名または user@host.domain の部分文字列 (ホスト名など) を指定
代わりに、-qInnnnn を使ってメールキューのサブセットを実行することもできます。
# /usr/lib/sendmail -qInnnnn |
キュー ID を指定します。
メールホストのスーパーユーザーになるか、同等の役割になります。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
sendmail デーモンを終了します。
# svcadm disable network/smtp:sendmail |
これで、sendmail はキューディレクトリを処理しなくなります。
/var/spool ディレクトリに移動します。
# cd /var/spool |
mqueue ディレクトリとディレクトリ内のすべての内容を omqueue ディレクトリに移動します。次に、mqueue という名前の新しい空のディレクトリを作成します。
# mv mqueue omqueue; mkdir mqueue |
ディレクトリのアクセス権を所有者は読み取り/書き込み/実行に、またグループは読み取り/実行に設定します。また、所有者とグループを daemon に設定します。
# chmod 750 mqueue; chown root:bin mqueue |
sendmail を起動します。
# svcadm enable network/smtp:sendmail |
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
古いメールキューを実行します。
# /usr/lib/sendmail -oQ/var/spool/omqueue -q |
-oQ フラグで、代替キューディレクトリを指定します。-q フラグで、キューのすべてのジョブを実行するように指示します。画面に冗長出力を表示する場合は、-v フラグを使用します。
空のディレクトリを削除します。
# rmdir /var/spool/omqueue |
次の表では、.forward ファイルを管理するための手順を説明します。詳細は、「.forward ファイル」の 第 14 章メールサービス (リファレンス)を参照してください。
作業 |
説明 |
参照先 |
---|---|---|
.forward ファイルを無効にする |
たとえば、自動転送を禁止する場合に実行する手順。 | |
.forward ファイルの検索パスを変更する |
たとえば、すべての .forward ファイルを共通ディレクトリに移動させる場合に実行する手順。 | |
/etc/shells を作成し生成する |
メールをプログラムまたはファイルに転送するために、ユーザーが .forward ファイルを使用できるようにする手順。 |
この節では、.forward ファイルの管理に関する複数の手順を説明します。これらのファイルはユーザーが編集できるので、ファイルが問題の原因になる場合があります。詳細は、「.forward ファイル」の 第 14 章メールサービス (リファレンス)を参照してください。
次を参照してください。
自動転送を禁止し、特定のホストの .forward ファイルを無効にするには、次の手順に従います。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
/etc/mail/cf/domain/solaris-generic.m4 またはサイト固有のドメイン m4 ファイルのコピーを作成します。
# cd /etc/mail/cf/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 のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
/etc/mail/cf/domain/solaris-generic.m4 またはサイト固有のドメイン m4 ファイルのコピーを作成します。
# cd /etc/mail/cf/domain # cp solaris-generic.m4 mydomain.m4 |
次の行を作成したファイルに追加します。
define(`confFORWARD_PATH',`$z/.forward:/var/forward/$u')dnl |
新しい構成ファイルを構築してインストールします。
この手順の詳細については、「新しい sendmail.cf ファイルを構築する方法」を参照してください。
.mc ファイルを編集する場合は、忘れずに、DOMAIN(`solaris-generic') を DOMAIN(`mydomain ') に変更してください。
このファイルは標準リリースには含まれていません。.forward ファイルを使用してプログラムまたはファイルにメールを転送することをユーザーに許可する場合は、このファイルを追加する必要があります。grep を使用して、パスワードファイルに一覧表示されたすべてのシェルを特定し、ファイルを手動で作成することができます。これにより、シェルをファイルに入力できます。しかし、次に示す、ダウンロード可能なスクリプトを使用する手順の方が簡単です。
スクリプトをダウンロードします。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
シェルのリストを作成するために、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 を再起動します。
# svcadm refresh network/smtp:sendmail |
各システムからテストメッセージを送信します。
# /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.13.6+Sun/8.13.6; Tue, 12 Sep 2004 13:34:13 -0800 (PST) expn sandy 250 2.1.5 <sandy@phoenix.example.com> quit 221 2.0.0 your.domain.com closing connection % |
この例では、mconnect プログラムがローカルホスト上のメールサーバーとの接続を確立し、接続をテストできるようにします。プログラムは対話式で実行されるので、さまざまな診断コマンドを実行できます。詳細は、mconnect(1) のマニュアルページを参照してください。expn sandy のエントリに、展開されたアドレス sandy@phoenix.example.com が示されています。したがって、別名 sandy でメールを配信できることが確認されました。
ローカルおよびドメインの両方で別名を使用する場合は、ループやデータベースの不整合が生じないようにしてください。あるシステムから別のシステムにユーザーを移動するときは、別名のループが生じないよう特に注意してください。
sendmail ルールセットの入力と戻りを確認するには、次の手順に従います。
アドレステストモードに変更します。
# /usr/lib/sendmail -bt |
メールアドレスをテストします。
最後のプロンプト (>) で次の数値とアドレスを入力します。
> 3,0 mail-sraddress |
テストするメールアドレスを指定します。
セッションを終了します。
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.13.1+Sun/8.13.1; Sat, 4 Sep 2004 3:52:56 -0700 expn sandy 250 2.1.5 <sandy@phoenix.example.com> quit |
mconnect を使用して SMTP ポートに接続できない場合は、次の条件を確認してください。
システム負荷が高すぎないか
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 プログラムを使ってメールタイプをテストし、着信メッセージと発信メッセージの数を判定します。
この節では、sendmail 関連のエラーメッセージを解釈し対処する方法について説明します。http://www.sendmail.org/faq/ も参照してください。
次のエラーメッセージには、次の種類の情報が含まれます。
原因 : メッセージ発生の原因となった可能性があるもの
説明 : エラーメッセージが発生した時にユーザーが行なっていた操作
対処方法 : 問題を解決するため、あるいは作業を続けるための操作
451 timeout waiting for input during source
原因:タイムアウトの可能性があるソース (SMTP 接続など) から読み取るとき、sendmail は、読み込みを開始する前にさまざまな Timeout オプションの値をタイマーに設定します。タイマーが期限切れになる前に読み取りが完了しなかった場合、このメッセージが表示され、読み取りが停止します。通常、この状況は RCPT 時に発生します。メールメッセージはキューに入れられて、あとで配信されます。
対処方法:このメッセージが頻繁に表示される場合は、/etc/mail/sendmail.cf ファイルの Timeout オプションの値を大きくします。タイマーがすでに大きな値に設定されている場合は、ネットワークの配線や接続などハードウェアの問題点を探します。
550 hostname... Host unknown
原因:この sendmail のメッセージは、単価記号 (@) のあとのアドレス部分で指定されている受信先のホストマシンが、ドメインネームシステム (DNS) ルックアップ時に見つからなかったことを示します。
対処方法:nslookup コマンドを使用して、受信先ホストが、そのドメインまたはほかのドメインにあることを確認します。スペルが間違っている可能性があります。あるいは、受信者に連絡して正しいアドレスを確認します。
550 username... User unknown
原因:この sendmail のメッセージは、単価記号 (@) の前のアドレス部分で指定されている受信者を受信先ホストマシンで検出できなかったことを示します。
対処方法:電子メールアドレスを確認し、再度送信してみます。スペルが間違っている可能性があります。これで解決しない場合は、受信者に連絡して正しいアドレスを確認します。
554 hostname... Local configuration error
原因:この sendmail メッセージは通常、ローカルホストがメールを自分宛に送信しようとしていることを示します。
対処方法:/etc/mail/sendmail.cf ファイル内の $j マクロの値が完全指定ドメイン名になっていることを確認します。
説明:送信側のシステムが SMTP の HELO コマンドで受信側のシステムに自身のホスト名を示すと、受信側のシステムはそのホスト名を送信者の名前と比較します。これらの名前が同じ場合、受信側のシステムはこのエラーメッセージを発行し、接続を閉じます。HELO コマンドで提供される名前は、$j マクロの値です。
追加情報については、http://www.sendmail.org/faq/section4#4.5 を参照してください。
config error: mail loops back to myself.
原因:このエラーメッセージが生成されるのは、MX レコードを設定し、ホスト bar をドメイン foo のメール交換局にした場合です。ただし、ホスト bar 自身がドメイン foo のメール交換局であることを認識するように設定されていません。
また、送信側システムと受信側システムの両方が同じドメインとして識別される場合にも、このメッセージを受け取ります。
対処方法:手順については、http://www.sendmail.org/faq/section4#4.5 を参照してください。
host name configuration error
説明:これは sendmail の古いメッセージで、「I refuse to talk to myself」というメッセージから置き換えられたもので現在は、「Local configuration error」メッセージに置き換えられています。
対処方法:次のエラーメッセージの対処方法で説明されている手順に従います。554 hostname... Local configuration error.
user unknown
原因:メールをユーザー宛てに送信しようとすると、「Username... user unknown」のエラーが表示されます。ユーザーが同じシステム上にいます。
対処方法:入力した電子メールアドレスに誤字がないか確認します。あるいは、ユーザーが、/etc/mail/aliases またはユーザーの .mailrc ファイルに存在しない電子メールアドレスに別名を割り当てられている可能性があります。また、ユーザー名の大文字も確認してください。できれば、電子メールアドレスは大文字と小文字が区別されないようにします。
追加情報については、http://www.sendmail.org/faq/section4#4.17 を参照してください。