引き続き年末を迎えての備忘録モードで、今回は sendmail 関連です。 私の知識は「sendmail.cf を作るには WIDE の CF を使って生成」というところで終わっているのですが、最近は CF など使わず m4 を使うのですね。
今回はテスト用にメールサーバを立ててクライアント端末から SMTP 接続を受け付け、自ドメイン以外は全て既定の他メールサーバへ配送する設定を行ったのですが、その手順についての備忘録です。
- 設定を変更するには /etc/mail (システムによっては他のディレクトリかも) 内のファイルを編集後、同ディレクトリで make を走らせればオッケー。make により sendmail.cf ファイルや必要なデータベースファイルが生成される。
-
/etc/mail/access
RELAY を受け付けるネットワークを記述するファイル。 例えば以下のようにクライアント端末の存在するネットワークを記述する。10.0 RELAY 192.168 RELAY
-
/etc/mail/local-host-names
自ドメインを記述するファイル。ここに記されたドメイン宛のメールを受け取る。example.com
-
/etc/mail/sendmail.mc
以下の点を修正
自ドメイン以外は mail.example.com にメールを配送するよう以下の行を追加。define ('SMART_HOST', 'mail.example.com')
デフォルトの sendmail.mc に在った、
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
ではローカル (自ホスト) からの SMTP 接続しか受け付けないので、クライアント端末からの SMTP 接続も受けるように、
DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
と変更した。
- sendmail.mc では "dnl" からその行末まではコメントとして扱われる
実はだいぶ古いバージョンの sendmail-8.12.8 (on RedHat Linux) を使ってこれらのセットアップを行ったのですが、最近の 8.14.x でもこの辺は変わっていないと思います。