FreeBSD覚書

あなたは人目のお客様です。 (平成16年3月31日から)


sendmail 8.12.9

FreeBSD 4.9のsendmail 8.12.9の設定に関するメモです。

sendmail.cfの作成について

sendmail.cfの書式は非常に難解で、普通の人間(計算機の管理能力が普通という意味)が直接記述することはほとんど不可能です。 sendmailのバージョンが8.9.xの頃は、CFという人間に分かる設定変更に基づいて 自動的にsendmail.cfを作成するツールがありましたが、CFは8.10.x以降をサポートしていません。 代わりにsendmailの中にm4を用いたsendmail.cf自動作成の仕組みが用意されています。

このとき、ベースとなる設定ファイルが必要ですが、これは/etc/mail/freebsd.mcを使用します。 ディレクトリ/usr/share/sendmail/cfに移動し、以下のようにします。

m4 m4/cf.m4 /etc/mail/freebsd.mc > /etc/mail/sendmail.cf
必要ならば、前もって/etc/mail/sendmail.cfをmvするなりして保存しておきましょう。 こののちに、sendmailを再起動します。

送信メールのFromアドレス、エンベロープ中のReturn-Pathを変更する

FreeBSD 4.9のsendmailを用いると、標準設定では送信したメールのFromアドレスは
user@host.domain.ac.jp
のようになってしまいます。これを
user@domain.ac.jp
のようにしたい場合は、/etc/mail/freebsd.mcに以下の行を加えてsendmail.cfを作成します。
FEATURE(`masquerade_envelope')
FEATURE(`masquerade_entire_domain')
MASQUERADE_AS(`domain.ac.jp')
masqueradeは、書き換えを意味します。
MASQUERADE_AS(`domain.ac.jp')
は、書き換えを行うことを指示するとともに、書き換え先がdomain.ac.jpである ことを指定します。
FEATURE(`masquerade_envelope')
は、メールのエンベロープのホスト名を書き換えることを指定します。
FEATURE(`masquerade_entire_domain')
は、domain.ac.jp以下のホスト名について全て書き換えを行うことを指示します。

この結果、host.domain.ac.jpからsendmailを用いて送出したメールは、 From:, Return-Path: などのフィールドがdomain.ac.jpに自動的に書き換えられます。 メールを受信した人にホスト名などの不要な情報を見せずに済みます。

なお、このようにReturn-Path:を書き換えたメールに対して返信されたメールは、 宛先がuser@domain.ac.jpとなって送られて来ます。 user@domain.ac.jp宛のメールが正しく受信できるように 自分のドメインのDNSと、メールホストを正しく設定しておく必要があります。

ドメインdomain.ac.jp宛てのメールを受け取るようにするには、

LOCAL_DOMAIN(`domain.ac.jp')
を追加します。

サブドメインにあるMUAからのメール送信を処理する

sendmailがドメインdomain.ac.jpにあり、 これをSMTPサーバとして指定するMUAがサブドメインsub.domain.ac.jpにあるとします。 このMUAが、domain.ac.jp以外に宛てたメールを送信しようとしても、拒否されます。 これは、sendmailがメール中継と判断し、デフォルト設定ではメール中継は行わないためです。

domain.ac.jp以下のサブドメインに所属するMUAからのメール中継を許可すればよいのですが、 実はその御膳立てはできています。 具体的には、ファイル/etc/mail/relay-domainsを作成し、この中に

domain.ac.jp
と書きます。これにより、domain.ac.jp以下のすべてのサブドメインからのメール中継を許可します。

もしも、relay-domainsが有効になっていない場合は、/etc/mail/freebsd.mcに以下の行を加えてsendmail.cfを作成します。

define(`confCR_FILE', `-o /etc/mail/relay-domains')
平成16年3月31日