SENDMAILの設定(FreeBSD 10の場合)

同一セグメントからのメールのリレーを許可し、かつ送信時は別のメールサーバーへ メールを送信するための設定です。
まず、アクセスマップを必ず設定する。これがないとリレーサーバの設定をしてもリレーしてくれません。
/etc/mail/access に以下を記述
	xxx.xxx.xxx.jp               RELAY
次に.mcファイルを作成。最初にサンプルとしてあるものを変更する。 xxx.xxx.xxx.jp.mc の設定
LOCAL_DOMAIN(`xxx.xxx.xxx.jp')dnl   						【重要】自分が受けとるべきメールアドレスを設定
FEATURE(access_db, `hash -o -T /etc/mail/access')dnl		【重要】リレーを制限するファイルの指定
FEATURE(blacklist_recipients)dnl								特定のメールアドレスからの受取拒否等を行う。
FEATURE(local_lmtp)dnl										ローカルのメールに対してlmtpを使用する。						
FEATURE(mailertable, `hash -o /etc/mail/mailertable')dnl			特定のメールを他のサーバー経由で送る設定ができる。
FEATURE(relay_based_on_MX)dnl								【重要】MXレコードを参照して、該当するドメインのメールを受け付ける設定になっている場合メールを受け取る。
FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')dnl			複数のバーチャルドメインを扱えるようにする。

define(`SMART_HOST', `smtp:yyy.xxx.xxx.jp')dnl					【重要】リレー先を指定。プロバイダでメールサーバが指定されているときに使用。

FEATURE(`nocanonify', `canonify_hosts')dnl
FEATURE(`accept_unresolvable_domains')dnl
FEATURE(`accept_unqualified_senders')dnl

MASQUERADE_AS(`xxx.xxx.xxx.jp')dnl							【重要】メール送信時に書き込まれるFrom部分に記述されるマシン名を指定したドメイン名に置き換える
MASQUERADE_DOMAIN(`xxx.xxx.xxx.xxx.jp')dnl					【重要】書き換えるドメイン名
FEATURE(`masquerade_envelope')dnl							【重要】リターンパスのドメインも書き換える。
FEATURE(`limited_masquerade')dnl							【重要】 MASQUERADE_ASに書き換える対象をMASQUERADE_DOMAINだけにする。

設定が終わった所でにてcf を作成する。この際allを使うことによってaccess_dbも作成する。
> cd /etc/mail
> make all
> make install
起動する前には必ず、メールが正しく配送されるか確認する。確認する方法は
sendmail -bt sendmail.cf
にて行う。確認例としてまず、ユーザ名を入れてみる。ローカルにユーザがあればそこにメールは落ちる。
Enter <ruleset> <address>
> 3,0 yukiya
canonify           input: yukiya
Canonify2          input: yukiya
Canonify2        returns: yukiya
canonify         returns: yukiya
parse              input: yukiya
Parse0             input: yukiya
Parse0           returns: yukiya
ParseLocal         input: yukiya
ParseLocal       returns: yukiya
Parse1             input: yukiya
Parse1           returns: $# local $: yukiya
parse            returns: $# local $: yukiya
また、 yukiya@xxx.xxx.yyy.jpと入力して外部にメールが配送されるか確認する。
Enter <ruleset> <address>
> 3,0 yukiya@xxx.xxx.yyy.jp
relayと出ている行でちゃんとsmtpサーバが現れていればOKです。
あとは/etc/rc.conf に
sendmail_enable="YES"
を記述し、sendmailを起動する。
>  /etc/rc.d/sendmail start
戻る