FreeBSD ハンドブック
Prev | Chapter 20. 電子メール | Next

# 20.3. sendmail の設定

寄稿: Christopher Shumway.

sendmail(8) は FreeBSD のデフォルトの メールトランスファエージェント (MTA) です。 sendmail の仕事はメールユーザエージェント (MUA) からのメールを受け取り、 それを設定ファイルで定義された適当なメーラに届けることです。 sendmail はネットワーク接続を受け入れて、 ローカルのメールボックスにメールを届けたり 別のプログラムにメールを渡したりもできます。

sendmail は次の設定ファイルを使用します。

ファイル名 | 機能
--- | ---
`/etc/mail/access` | sendmail アクセスデータベースファイル
`/etc/mail/aliases` | メールボックスエイリアス
`/etc/mail/local-host-names` | sendmail が受け付ける配送先ホストのリスト
`/etc/mail/mailer.conf` | メーラプログラムの設定
`/etc/mail/mailertable` | メーラ配送表
`/etc/mail/sendmail.cf` | sendmail の主設定ファイル
`/etc/mail/virtusertable` | 仮想ユーザおよび仮想ドメイン表

## 20.3.1. `/etc/mail/access`

アクセスデータベースは、 どのホストまたは IP アドレスがローカルメールサーバに接続できるか、 そして接続の種類は何か、ということを定義します。 ホストは `OK`, `REJECT`, `RELAY` として指定できます。 または、メーラエラーを指定することで、 単に sendmail の エラー処理ルーチンに渡されます。 `OK` として指定されたホスト (これはデフォルトです) は、 メールの最終宛先がローカルマシンである限り、 このホストへメールを送ることを認められます。 `REJECT` として指定されたホストは、 すべてのメール接続を拒絶されます。 ホスト名に対して `RELAY` オプションを指定されたホストは、 このメールサーバを通過して任意の宛先へメールを送ることを認められます。

Example 20-1. sendmail アクセスデータベースの設定

    cyberspammer.com                550 We don't accept mail from spammers
    FREE.STEALTH.MAILER@            550 We don't accept mail from spammers
    another.source.of.spam          REJECT
    okay.cyberspammer.com           OK
    128.32                          RELAY

この例では五つのエントリがあります。 表の左側に当てはまるメール送信者は、表の右側の動作に支配されます。 はじめの二つの例は、エラーコードを sendmail のエラー処理ルーチンに渡します。 メールが表の左側に当てはまると、リモートホストにそのメッセージが表示されます。 次のエントリは `another.source.of.spam` というインターネット上の特定のホストからのメールを拒絶します。 次のエントリは `okay.cyberspammer.com` からのメール接続を受け入れます。 このエントリは上にある `cyberspammer.com` という行よりもさらに厳密です (厳密に一致すればするほど、そうでないものより優先されます)。 最後のエントリは `128.32` から始まる IP アドレスのホストからの電子メールのリレーを認めます。 これらのホストは他のメールサーバに到達できるこのメールサーバを使ってメールを送ることができるでしょう。

このファイルを変更したら、 データベースを更新するために `/etc/mail/` ディレクトリで `make` コマンドを実行する必要があります。

## 20.3.2. `/etc/mail/aliases`

エイリアスデータベースには、 他のユーザ、ファイル、プログラムまたは他のエイリアスに展開される 仮想的なメールボックスの一覧が記載されています。 `/etc/mail/aliases` において使用できる例をいくつかあげます。

Example 20-2. メールエイリアス

    root: localuser
    ftp-bugs: joe,eric,paul
    bit.bucket:  /dev/null
    procmail: "|/usr/local/bin/procmail"

ファイル形式はシンプルです。 コロンの左側にあるメールボックス名は、右側のターゲットに展開されます。 はじめの例は単純に `root` のメールボックスを `localuser` のメールボックスに展開し、 それからエイリアスデータベースをもう一度調べます。 一致するエントリがなければメッセージはローカルユーザである `localuser` に配送されます。 次の例はメールリストです。 `ftp-bugs` のメールボックスへのメールは `joe`, `eric` および `paul` の三つのローカルメールボックスに展開されます。 リモートメールボックスは `user@example.com` のように指定できることに注意してください。 次の例はメールをファイル、この場合 `/dev/null` に書き込みます。 最後の例はメールをプログラムに送ります。 この場合メールのメッセージは UNIX® パイプを通じて `/usr/local/bin/procmail` の標準入力に書き込まれます。

このファイルを変更したら、 データベースを更新するために`/etc/mail/` ディレクトリで `make` コマンドを実行する必要があります。

## 20.3.3. `/etc/mail/local-host-names`

これは sendmail(8) がローカルホスト名として認めるホスト名のリストです。 sendmail がメールを受け取るすべてのドメインやホストにこのファイルを置いてください。 たとえば、このメールサーバは `example.com` というドメインおよび `mail.example.com` というホストへのメールを受け取るとすると、 `local-host-names` ファイルの内容は次のようになるでしょう。

    example.com
    mail.example.com

このファイルを更新したら、変更を読み込むために sendmail(8) を再起動する必要があります。

## 20.3.4. `/etc/mail/sendmail.cf`

sendmail の主設定ファイルである `sendmail.cf` は、電子メールアドレスの書き換えから、 リモートメールサーバへ拒絶メッセージを送ることまで sendmail の全般的な動作をすべて制御します。 当然、そのようなさまざまな役割によりこの設定ファイルは大変複雑で、 その詳細についてはこの節の少し範囲外です。好運なことに、 標準的な構成のメールサーバではこのファイルをめったに変更する必要はありません。

sendmail の主設定ファイルは sendmail の機能と動作を決定する m4(1) マクロから構築できます。 詳細については `/usr/src/contrib/sendmail/cf/README` を参照してください。

このファイルを更新したら、その変更を反映するために sendmail を再起動する必要があります。

## 20.3.5. `/etc/mail/virtusertable`

`virtusertable` は仮想ドメインおよび仮想メールボックスに対するアドレスを実際のメールボックスと対応づけます。 これらのメールボックスにはローカル、リモート、 `/etc/mail/aliases` に定義されたエイリアス、 またはファイルを使用できます。

Example 20-3. 仮想ドメインメール対応表の例

    root@example.com                root
    postmaster@example.com          postmaster@noc.example.net
    @example.com                    joe

上の例では `example.com` ドメインへの対応づけをしています。 このファイルはファイルの下までファーストマッチ (訳注: 一致するルールが複数ある場合、 一番最初に一致したルールが適用されること) で処理されます。 はじめの行では `root@example.com` を ローカルの `root` メールボックスに対応づけています。 次のエントリでは `postmaster@example.com` を `noc.example.net` ホスト上の `postmaster` メールボックスに対応づけています。 最後に、今までのところでは `example.com` に関して何も一致しない場合、最後のエントリと一致するでしょう。 これは `example.com` の誰かに送ったすべてのメールが一致します。これは `joe` のローカルメールボックスに対応づけられています。

Prev | Home | Next
電子メールを使う | Up | MTA の変更