Sendmail+CFインストールメモ


1999/12/02
sendmail-8.9.3 + CF-3.7Wpl2 with CF-3.7Wpl2-smtpcheck.patch{1,2}対応
1998/10/12
sendmail-8.9.1a + CF-3.7Wpl2 対応
1998/06/09 作成
プラットフォームは、Plamo Linux 1.3.1(あたり)です。
sendmail(メールサーバ)
  1. 入手

    ftp.sendmail.org から sendmail.8.9.3 を取ってくる。

    以下、入手したアーカイブは /home/ftp/pub に、 インストール先は /usr/local/src 配下に行うものとする。 なお、以下の作業はすべて root で行った。

  2. インストール

    ns:~# cd /usr/local/src
    ns:/usr/local/src# rm -rf sendmail*
    ns:/usr/local/src# tar xvzf /home/ftp/pub/sendmail.8.9.3.tar.gz
    ns:/usr/local/src# cd sendmail-8.9.3/src
    ns:/usr/src/sendmail-8.9.3/src# sh Build
    ns:/usr/src/sendmail-8.9.3/src# sh Build install
    
  3. ローカルメーラのインストール

    Plamo には mail.local がないらしいので作っておく。

    ns:/usr/src/sendmail-8.9.3/src# cd ../mail.local
    ns:/usr/src/sendmail-8.9.3/mail.local# sh Build
    ns:/usr/src/sendmail-8.9.3/mail.local# sh Build force-install
    ns:/usr/src/sendmail-8.9.3/mail.local# cd ../..
    
  4. 環境の保存

    後の作業ために、以前の /etc/sendmail.cf のバックアップを (ここでは /tmp に)取っておく。

    ns:/usr/local/src# cp /etc/sendmail.cf /tmp
    
CF(sendmail 設定ツール)
  1. 入手

    Wide Projectから CF-3.7Wpl2.tar.gz および CF-3.7Wpl2-smtpcheck.patch{1,2} を取ってくる。

  2. インストール

    CF-3.7Wpl2/README.jpn を読みながら行う。

    ns:/usr/local/src# tar xvzf /home/ftp/pub/CF-3.7Wpl2.tar.gz
    ns:/usr/local/src# cd CF-3.7Wpl2/Master
    ns:/usr/local/src/CF-3.7Wpl2/Master# patch < /home/ftp/pub/CF-3.7Wpl2-smtpcheck.patch1
    ns:/usr/local/src/CF-3.7Wpl2/Master# patch < /home/ftp/pub/CF-3.7Wpl2-smtpcheck.patch2
    ns:/usr/local/src/CF-3.7Wpl2/Master# cd ..
    ns:/usr/local/src/CF-3.7Wpl2# make cleantools
    ns:/usr/local/src/CF-3.7Wpl2# make tools
    ns:/usr/local/src/CF-3.7Wpl2# make samples
    ns:/usr/local/src/CF-3.7Wpl2# cp Standards/sendmail-v8.def sendmail.def
    ns:/usr/local/src/CF-3.7Wpl2# cp sendmail.def sendmail.def.orig
    
  3. sendmail.def の編集とインストール

    loop:   ←謎

    CF-3.7Wpl2/doc/INTRO.jpn を読みながら、 sendmail.def を自サイトの構成に合わせてエディタで修正する。 ごく単純な、DNS を参照してメールを配送するだけの sendmail なら、 ここまでで設定は完了する。といいつつも、 結局は doc/MANUAL.jpn のお世話になるハメになるであろう :-)

    編集が終わったら、sendmail.def を作成して /etc にコピーする。 その後 sendmail を殺して新しい sendmail を起動にする。

    ns:/usr/local/src/CF-3.7Wpl2# make sendmail.cf
    ns:/usr/local/src/CF-3.7Wpl2# cp sendmail.cf /etc
    ns:/usr/local/src/CF-3.7Wpl2# kill `head -1 /var/run/sendmail.pid`
    ns:/usr/local/src/CF-3.7Wpl2# /usr/sbin/sendmail -bd -q15m
    

    これ以降、地獄のデバッグが始まる :-)
    いろいろ試してみてまずい点が見つかれば、速やかに環境を元に戻す。

    ns:/usr/local/src/CF-3.7Wpl2# cp /tmp/sendmail.cf /etc
    ns:/usr/local/src/CF-3.7Wpl2# kill `head -1 /var/run/sendmail.pid`
    ns:/usr/local/src/CF-3.7Wpl2# /usr/sbin/sendmail -bd -q15m
    

    その後 loop へ戻る :-)

(参考)試行錯誤の結果

以下のようなポリシーで設定を行った

結果はこうなった。備忘録として残しておく。自分のために :-)

ns:/usr/local/src/CF-3.7Wpl2# diff -u sendmail.def.orig sendmail.def
--- sendmail.def.orig   Thu Dec  2 11:26:37 1999
+++ sendmail.def        Thu Dec  2 15:59:02 1999
@@ -19,16 +19,16 @@

 # version number for Received: header line
 #VERSION=3.7W
-#VERSION_SEPARATOR=
+VERSION_SEPARATOR=/
 #LOCAL_VERSION=
-##LOCAL_VERSION=`date +%D`
+LOCAL_VERSION=`date +%D`
 ##LOCAL_VERSION=`date +%y%m%d%H`

 #VENDER_CODE=Berkeley

 # [ostype]
 # OS type (choose a file name in ostype directory)
-#OS_TYPE=
+OS_TYPE=linux

 # [general]
 # with sendmail.mx (yes/no)
@@ -59,9 +59,9 @@
 ##LOCAL_USERS='user1 user2 ...'
 # default from-address (can be $j, $m or another generic address)
 #FROM_ADDRESS='$j'
-##FROM_ADDRESS='$m'
+FROM_ADDRESS='$m'
 # apply FROM_ADDRESS for receipients (yes/no)
-#RECIPIENT_GENERIC=no
+RECIPIENT_GENERIC=yes
 # rewrite address which has official name already into generic form
 # (yes/lower/no)
 #REWRITE_GENERIC_FROM=no
@@ -83,7 +83,7 @@

 # [acceptaddr]
 # addresses which should be accepted as local
-##ACCEPT_ADDRS='$m'    # can be used with R8 sendmail
+ACCEPT_ADDRS='$m'      # can be used with R8 sendmail
 ##ACCEPT_ADDRS=$MY_DOMAIN
 ##ACCEPT_ADDRS='accept.domain.name1 accept.domain.name2 ...'
 # use /etc/sendmail.aa file (yes/optional/no)
@@ -141,7 +141,7 @@

 # [spool]
 # spool host
-##SPOOL_HOST='spool.host.name'
+SPOOL_HOST='exp5800.hoge.co.jp'
 # exact address specification
 #IGNORE_SPOOL_MX=no
 #WITH_SPOOL_ADDR=no
@@ -456,7 +456,7 @@

 # [deliver]
 # static routing description file
-#STATIC_ROUTE_FILE=
+STATIC_ROUTE_FILE=/etc/static_route_file
 # use long macro/class names (yes/no)
 #USE_EXTENDED_NAMES=no

@@ -579,7 +579,7 @@
 # log level 
 #LOG_LEVEL='9'
 # use Errors-To: header?  (True/False)
-#USE_ERRORS_TO='False'
+USE_ERRORS_TO='True'
 # send to me too, even in an alias expansion?  (True/False)
 #ME_TOO='True'
 # verify RHS in newaliases?  (True/False)
@@ -735,7 +735,7 @@
 ##LOCAL_HOST_IPADDR=/etc/sendmail.localip
 ##LOCAL_HOST_IPADDR=130.54.0
 ##LOCAL_HOST_DOMAIN=/etc/sendmail.localdomain
-##LOCAL_HOST_DOMAIN=sub.kyoto-u.ac.jp
+LOCAL_HOST_DOMAIN=hoge.co.jp
 #
 # CLIENT_* does check senders address
 ##CLIENT_HOST_IPADDR=/etc/sendmail.clientip
ns:/usr/local/src/CF-3.7Wpl2# cat /etc/static_route_file
VER 1999/12/02
ESTATIC hoge.co.jp smtp: exp5800.hoge.co.jp
ESTATIC mailhoge.co.jp smtp: mail.hoge.co.jp