sendmailのmailertableの書式をまとめました。まずは基本的な書き方から。
mailertableの書式は、空白で区切って左辺と右辺にそれぞれ値を書きます。例えばこんな感じです。
example.com smtp:mail01.example.jp
mailertableには「左辺に書かれたドメイン宛のメールに関して、右辺の処理を行う。」という設定を書きます。
上記例の場合は、「example.comドメイン宛のメールはmail01.example.jpにSMTP配送する。」という事になります。
mailertableの左辺には、マッチさせたいドメインを書きます。example.comにマッチさせたいときは、次のように書きます。
example.com smtp:mail01.example.jp
hoge.example.comやfuga.example.comなど、example.comのサブドメインにマッチさせたいときは、次のように書きます。この時、example.comにはマッチしません。
.example.com smtp:mail01.example.jp
example.comとexample.comのサブドメインの両方にマッチさせたい場合は2行に分けて次のように書きます。
example.com smtp:mail01.example.jp
.example.com smtp:mail01.example.jp
全てのドメインにマッチさせたい場合は、次のように「.(ドット)」のみを書きます。
. smtp:mail01.example.jp
mailertableの右辺には、左辺でマッチしたドメイン宛のメールに対してどんな処理を行うかを書きます。この時、「:(コロン)」で区切って、mailer:hostという書式になります。
mailer部には、予めsendmail.cf内で定義された配送方法を指定します。mailerには次のようなものがあります。mailerには次に挙げるもの以外にもありますが、smtpやrelayを使う機会がほとんどだと思います。
- smtp
- esmtp
- relay
- local
- xnet
hostには、mailerを通して配送するホストを指定します。mail01.example.jpにメールを配送したい場合、次のように書きます。
example.com smtp:mail01.example.jp
hostには、ドメインを指定することもできます。その場合、次のように書きます。
example.com smtp:example.jp
hostにホストを書いてもドメインを書いても、sendmailはhostに書かれた値に関して、DNSのMXレコード検索を行います。
ドメインexample.jpに関するDNSのMXレコードが次のように設定している場合を考えます。
example.jp. IN MX 10 relay.example.jp.
この時、mailertableの右辺host部にexample.jpと書いたら、relay.example.jpにメール配送が行われます。
DNSのMXレコード検索を行いたくない場合は、次のようにhostを[ ]で括ります。
example.jp smtp:[mail01.example.jp]
[ ]で括ると、MXレコードの検索を行わず、そのホストに直接メールを配送します。
hostにはIPを直接書くこともできます。
example.jp smtp:[192.168.1.25]