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
で確認できます。