sendmailの設定

11月 19, 2009

Linux LPIC編。(第12章 メールサービス)

さてsendmail。主要な設定ファイルはsendmail.cfで、他に/etc/mailディレクトリ以下に
配置されている各種ファイルを使用する。

まず、主要設定ファイルのsendmail.cf。
通常sendmail.cfは直接編集するのではなく、sendmail.mcに記述してからm4マクロで
反映させる。

以下はsendmail.mcの記述例。コメントはdnlで表す。
末尾にdnlをつけるのは、m4の性質上sendmail.cfの作成時に余計な改行を入れてしまう
ため、それを避けるためだとか。

sendmail.mc記述例

OSTYPE(‘linux’)dnl ←OSの種類を指定

MAILER(smtp)dnl ←MTAを指定
MAILER(procmail)dnl ←MDAを指定

define(‘confMAX_MESSAGE_SIZE’, ’10480000′)dnl ←最大メールサイズは10MB
 :
 :


編集後は以下の手順で反映させる。sendmail.cfはバックアップをとっておいた方が良い。

# m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
# /etc/init.d/sendmail restart ←sendmailを再起動させて反映


他の設定ファイル
リレー配送の制御を行うファイル、/etc/mail/accessの設定例を。
制御するキーワードは以下の通り。

キーワード
RELAY リレーを許可
REJECT 受信を拒否する
OK  明示的に受信を許可する
DISCARD メールを破棄する
550 文字列 550ステータスコードと文字列を返して拒否

記述例
delivery.net  RELAY ←delivery.netドメインにリレーを許可
spam-delivery.net  550 No Spam Wanted ←メッセージを返して拒否


メモ
/etc/mailディレクトリ以下のファイルは、sendmail.mcとlocal-host-namesを除き、
編集後にmakeコマンドでDBM形式のデータベースファイルを作成する必要がある。
(makeは/etc/mailディレクトリで実行すればよい)

またはmakemapコマンドで個々の設定ファイルからDBM形式のファイルを生成する
ことも可能。

# makemap hash access.db < access


次に、/etc/mail/local-host-namesについて。
この設定ファイルは、どのドメイン(ホスト)宛のメールを受け取るかを記述する。
以下の例では@以下がmessage.netでもmx.message.netでも、どちらでもメールを受け
取れるようにしている。このファイルは編集後にmakeを実行しなくてよいことに注意。

記述例
mx.message.net
message.net


他の/etc/mail配下のファイルとしては、ドメイン名のマッピングを行うdomaintable、
特定ドメイン宛の配送経路を指定するmailertable、ドメインのエイリアスを設定する
virtusertableファイルなどがある。

メールエイリアス
次に、/etc/aliasesについて。(出題範囲変更前はレベル1)
/etc/aliasesは、メールアカウントのユーザ名と、実際に受け取るユーザ名の対応を設定できる。

書式
アカウント: 受け取りユーザ1,[受け取りユーザ2, ....]

記述例
postmaster: yamamoto,katou,tanaka


上記の例では、postmaster宛に届いたメールを受け取りユーザで指定した3つのアカウント
が受け取るようになっている。システム上に実際にpostmasterユーザが存在すると、
そのアカウントはメールを受信できなくなることに注目。
直接ユーザを指定するほかに、以下のような記述も可能。

指定可能な別名
/path 指定したパスのファイルにメールのメッセージを追加する
| command 指定したコマンドの標準入力へメールのメッセージを送る
user@domain 指定したメールアドレスへメールを転送
:include:/path 指定したファイルを別名として読み込む
※このファイルにメールを受信させたいユーザ名をリストとして記述しておけば、
簡易メーリングリストとして機能する。


/etc/aliasesを編集後は、newaliasesコマンドを実行して変更を反映させる。

力を振り絞って、最後に.forwardによるメール転送について。
名ユーザのホームディレクトリに.forwardファイルを作成すると、そのユーザに届いた
メールを任意のアドレスに転送できる。
以下の例は、user01に届いたメールをtest@message.net宛に転送。

$ cat /home/user01/.forward
test@message.net


.forwardファイルは該当ユーザ以外に書込み権限があると正常に動作しない、という
のは注意、ですね。

うぅ、sendmailはさすがにボリュームがあるなぁ。。
でも終わった。これで次のステップへと進める。まだメールだけど。
次回はメールキューの管理とメールボックスについて。Postfixとsendmailの違いにも
フォーカスしてみよう。

出典
Linux教科書LPICレベル2(翔泳社)


Linux記事一覧はこちらをどうぞ
↓ ↓ ↓
Linux-index

Categories: LPIC

No Responses so far | Have Your Say!

Comments are closed.