4章 Sendmailについて


4-1 Sendmailについて

SendmailはUNIXで利用可能な有名なMTAで、多機能であるため設定が複雑である。Sendmailの動作の すべては、標準設定ファイル(sendmail.cf)からsendmailの設定を読み、実行される。この設定 ファイルの中には、自分のメールサーバに到着したメッセージや送信するメッセージの経路を どのように扱うかを制御するためのパラメータが記述されている。しかし、パラメータの生成が大変複雑なので、 CFというユーティリティやGNU m4 マクロプロセッサを使用して、sendmail.cfを生成する 方法がある。ここでは、GNU m4 マイクロプロセッサを使用する方法を紹介する。GNU m4 マイクロプロセッサは、 sendmailの設定の雛形であるマクロファイルを組み合わせることにより、設定ファイルである sendmail.cfを作成する。


4-2 設定の方法


4-2-1 設定ファイルの構成

設定ファイルは、テキストファイルで一行にし、コマンドを記入する。又、ファイル名の拡張子は通常、.mcとする。


4-2-2 sendmailの設定

sendmailの設定ファイルを生成するために、m4の入力ファイルを作成する。

cp generic-linux.mc /etc/mail/sendmail.mc

cf/cfディレクトリにある多数のmcファイルは、実際に使用するmcファイルを作成する 際のテンプレートになる。ここでは、OSにLinuxを使用しているため、generic-linux.mcを テンプレートとして使用する。

・作成された/etc/mail/sendmail.mcの内容

include(/usr/lib/sendmail.cf/m4/cf.m4)dnl	…(1)
VERSIONID(`sendmail.mc')dnl …(2)
OSTYPE(`debian')dnl …(3)
FEATURE(`allmasqurade')dnl …(4)
FEATURE(`masqurade_envelope')dnl …(5)
FEATURE(`always_add_domain')dnl …(6)
FEATURE(`virtusertable')dnl …(7)
FEATURE(`local_procmail')dnl …(8)
FEATURE(`access_db')dnl …(9)
FEATURE(`blacklist_recipients')dnl …(10)
MAILER(`smtp')dnl …(11)
MAILER(`procmail')dnl …(12)
(1)多数のマクロを定義してあるcf.m4ファイルを読み込む。

(2).cfファイルを生成するのに用いた.mcファイルと.m4ファイルのバージョン情報である。

(3)使用するオペーレーティングシステムの指定する。

(4)受取人のアドレスをMASQURADE_AS機能で指定したアドレスに見せかける。

(5).mcファイルにmasuqurade_envelope.m4という名前のファイルが読み込まれエンベロープを マスカレードする。

(6)ローカルユーザ全てのメールにドメイン名を付加する。

(7)他のドメインからのユーザに別名をつけたり、メールを特定の場所に転送する。メールの受け取りは、 個人や他のメールサーバになる。

(8)ローカル配送に使用するprocmailの位置を知らせる。

(9)sendmailがデータベースにアクセスすることを可能にする。データベースにアクセス することによってメール管理者がメールサーバでリレーを可能とするサイトを決定したり、 メール配送を行わないようにするホストを決定できる。

(10)メールを受け取らないホストをaccess_dbから読み込む。

(11)、(12)sendmailに転送するために使われるメールシステムを定義する。ここでは、SMTP、Procmailを 使用する。

このように設定されたsendmailは、次のように動作する。

1、ローカルのメールボックスへの配信は、procmailを使用する。

2、外部へのメールの送信は、SMTPを使用する。

・sendmail.cfの作成

作成したマクロ定義ファイルsendmail.mcからsendmail.cfを作成する。

m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

このコマンドでは、出力はsendmail.cfになる。このsendmail.cfファイルがsendmailの設定ファイルである。

・sendmailの起動

sendmailの設定ファイルsendmail.cfを作成したら、sendmailを起動する。

/etc/init.d/sendmail start

起動しているsendmailの設定ファイルを修正した場合、sendmailを再起動させる。

/etc/init.d/sendmail restart