sendmail

※言わずと知れたMTA(メール配信)ソフトです。
 電子メールのうち、送信と転送を受け持ちます。
 過去にさまざまなバグが報告されておりますので、
 常に最新のものを使うようにしましょう。

※設定ファイルが「sendmail.cf」だけではなくて、
 「submit.cf」も必要になりました。

【ダウンロード】
ftp://ftp.sendmail.org/pub/sendmail/

または
http://www.sendmail.org/


【展開】
(以下の作業はrootで行ってください)
# cd /usr/src
# gzip -cd sendmail.8.13.4.tar.gz | tar xvf -

すでにsendmail が起動していたら停止させます。
# /etc/rc.d/init.d/sendmail stop
  または
# kill -9 (sendmailのPID)
(PIDは、「ps aux | grep sendmail」でわかります。)

【コンパイル】
# cd /usr/src/sendmail-8.13.4/sendmail
# sh Build install-sm-mta

【設定ファイルの作成】
# cd /usr/src/sendmail-8.13.4/cf/cf
# cp generic-linux.mc config.mc
(必要に応じて、「config.mc」を編集してください)

「config.mcをもとに」「config.cf」を作成します。
# sh Build config.cf

# cd /etc
# mkdir mail.old
# cp mail/* mail.old/.
# cd mail
# cp /usr/src/sendmail-8.13.4/cf/cf/config.cf sendmail.cf
# touch local-host-names
# touch access
# touch mailertable

# newaliases
(エラーがでたら、存在しないといわれた
空のディレクトリやファイルを作成し、再度
newaliasesしてください)


次に、「submit.cf」を作成します。
(必要に応じて、「submit.mc」を事前に修正しておいてください。)

# cd /usr/src/sendmail-8.13.4/cf/cf
# sh Build submit.cf
# cp submit.cf /etc/mail/.


【インストール】
# cd /usr/src/sendmail-8.13.4/sendmail
# sh Build install

※もし「smmsp」グループがない、というエラーでたら、

# groupadd -g 25 smmsp
# useradd -u 25 -g 25 smmsp

を実行して、もう一度「sh Build install」を実行してください。


# cd /usr/src/sendmail-8.13.4/makemap
# sh Build install

# cd /usr/src/sendmail-8.13.4/mailstats
# sh Build install


【設定】
「etc/mail/sendmail.cf」を環境に合わせて修正するのですが、かなり難しい
記述をしなくてはなりません。設定を簡単にする「CF」というツールもありますが、
最新のsendmail-8.10以降にはまだ対応していないようです。
最新のsendmailに対応できるCFのありかをご存知の方は
是非ご連絡くださいませ。ここでは、上でコンパイル&リンクしたときに
使用した「config.mc」から「config.cf」を作成しています。必要に応じて、
皆さんの設定を「config.mc」に行い、再度「config.cf」を作成するなどしてください。
(「/etc/mail/」にコピーするのをお忘れなく。)



以下のパーミッションを確認してください。

フラグ 所有者 グループ ファイル
-r-xr-sr-x root smmsp /usr/sbin/sendmail
drwxrwx--- smmsp smmsp /var/spool/clientmqueue
drwx------ root root /var/spool/mqueue
-r--r--r-- root root /etc/mail/sendmail.cf
-r--r--r-- root bin /etc/mail/submit.cf

もし上記になっていなかったら、
chmod/chownでパーミッションや所有者/グループ設定を
適切に修正しておいてください。



【起動】
/etc/rc.d/init.d/sendmail start
または
# /usr/sbin/sendmail -L sm-mta -bd -q1h
(「-q1h」は、キューに残っているメールを1時間ごとに送信を試みる指定)

【停止】
/etc/rc.d/init.d/sendmail stop
または
# kill -9 (sendmailのPID)」)
(PIDは、「ps aux | grep sendmail」でわかります。)


【以下をするとシステム起動時に自動立ち上げされます】
(ただし、「/etc/rc.d/init.d/sendmail」が存在する場合は
後述のchkconfigで設定してください。)

# cd /etc/rc.d
# vi rc.local
ファイルの最後に以下を追加します
----------------------------------------
#Starting sendmail...
if [ -x /usr/sbin/sendmail ]; then
/usr/sbin/makemap hash /etc/mail/access < /etc/mail/access > /dev/null
/usr/sbin/makemap hash /etc/mail/mailertable < /etc/mail/mailertable > /dev/null
sendmail -L sm-mta -bd -q1h
echo ""
echo -n "Starting sendmail..."
fi
----------------------------------------
「:wq!」で保存終了します。

※chkconfigでの設定例
「/etc/rc.d/init.d/sendmail」が存在する場合は、

chkconfig --level 3 sendmail on
chkconfig --level 4 sendmail on
chkconfig --level 5 sendmail on

としてください。

chkconfig --list | grep sendmail

で確認できます。