sendmail のインストール
Last Modified: Tue Dec 27 00:06:02 JST 2011

メールの原理

電子メールとは、メッセージを他のユーザに送るサービスの一種だ。 現在世界中で多くの人々がインターネットを介したメールサービスを利用しているが、 その原理を理解した上で使っている人は少ないと思う。 別にそんなもの知らなくても使うだけなら平気なのだが、管理者としてはそれではまずい。 以下に、簡単に配送の仕組みを説明しておく。

sendmail のインストール

sendmail のインストール作業そのものは、さほど難しくない。 手順は以下の通り。

  1. ソースを入手する。
    www.sendmail.org をチェックして、最新バージョンをダウンロードする。 現在のところ、8.9.3 が最新である。
  2. ソースを展開する。

    # tar zxf sendmail.8.9.3.tar.gz # cd sendmail-8.9.3
  3. make し、install を実行する。

    # make # make install

以上で、ともかく sendmail 本体はインストールされる。

sendmail.cf の作成

sendmail の動作を決定するのは、sendmail.cf というマクロファイルである。 sendmail.cf を直接記述したり変更するのは、はっきりいって大変なことだ。 一般には CF のようなパッケージも出回っているが、ここでは sendmail に付属のマクロパッケージで sendmail.cf を生成する方法について説明する。

元となるマクロパッケージは、sendmail-8.9.3/cf/cf ディレクトリにある、.mc ファイルである。 FreeBSD 用に使えるのは、このうちの generic-bsd-4.4.mc だ。 これと、sendmail-8.9.3/cf/m4/cf.m4 というファイルを用いて、次のコマンドで sendmail.cf が作成できる。


# m4 cf.m4 generic-bsd-4.4.mc >sendmail.cf

以上をまとめると、次のようになる。

  1. sendmail-8.9.3/cf ディレクトリに移動し、作業用ディレクトリを作成する。

    # cd sendmail-8.9.3/cf # mkdir site
  2. 元となる .mc ファイルをコピーする。

    # cp ../cf/generic-bsd-4.4.mc sendmail.mc
  3. m4 コマンドを使って sendmail.cf を作成する。

    # m4 ../m4/cf.m4 sendmail.mc >sendmail.cf
  4. 自分のドメイン名を書いた sendmail.cw ファイルを用意する。

    # cat >sendmail.cw mydomain.com ^D
  5. ファイルを /etc にコピーする。

    # cp sendmail.cf sendmail.cw /etc

sendmail.cf の設定

sendmail.cf の設定は、その元となる .mc ファイルを変更することでコントロールすることができる。 まず、上記の方法でコピーしてきた sendmail.mc の内容を示す。


divert(-1) # # Copyright (c) 1998 Sendmail, Inc. All rights reserved. # Copyright (c) 1983 Eric P. Allman. All rights reserved. # Copyright (c) 1988, 1993 # # (コメント省略) # divert(0)dnl VERSIONID(`@(#)generic-bsd4.4.mc 8.7 (Berkeley) 5/19/1998') OSTYPE(bsd4.4)dnl DOMAIN(generic)dnl MAILER(local)dnl MAILER(smtp)dnl

それぞれのディレクティブの意味は、sendmail のドキュメントを参照してほしい。

通常、このままの設定で十分だが、ひとつだけ追加すべき項目がある。

sendmail の再起動

sendmail.cf と、他の必要なファイルを /etc にコピーしたら、sendmail を再起動しなければならない。 通常ならば、デーモンとして動作している sendmail に HUP を送るだけでよい。


# killall -HUP sendmail

再起動したら、/var/log/maillog をチェックして、エラーが出ていないことを確かめる。 sendmail.cf にエラーがあっても、黙って終了してしまうので注意が必要だ。


[back to index]