- 2008-11-05 (水) 23:52
- Linux
今時sendmailなんて使えないのでqmailに挑戦します。
qmailは安全で、信頼できて、高性能で、 簡潔な メイル配送エージェント(MTA) です。(公式より)
参考にしたのはこのあたりのサイトです。
http://www.atmarkit.co.jp/flinux/rensai/qmail01/qmail01a.html
CentOS5.2を使いました。
以下、使えるようになるまでの細かい説明を省いた作業履歴。
cd /usr/local/src/ wget ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz wget http://cyberam.dip.jp/linux_server/mail/qmail-date-localtime.patch tar zxvf qmail-1.03.tar.gz cd qmail-1.03/
ダウンロード&解凍。
そしてパッチを当てます。
patch -p1 < ../qmail-date-localtime.patch
コンパイルの前に必要なユーザーとグループの作成を行います。
mkdir /var/qmail groupadd nofiles useradd -g nofiles -d /var/qmail/alias -s /bin/false alias useradd -g nofiles -d /var/qmail -s /bin/false qmaild useradd -g nofiles -d /var/qmail -s /bin/false qmaill useradd -g nofiles -d /var/qmail -s /bin/false qmailp groupadd qmail useradd -g qmail -d /var/qmail -s /bin/false qmailq useradd -g qmail -d /var/qmail -s /bin/false qmailr useradd -g qmail -d /var/qmail -s /bin/false qmails
コンパイルします。
make setup
ここでエラーが出るので調べてパッチをあてることにします。
cd .. wget http://www.stackasterisk.jp/tech/systemConstruction/qmail01/qmail-glibc.patch cd qmail-1.03/ patch -s <../qmail-glibc.patch
もういちど
make setup make check
おっけーですね。
./config-fast mail.sj6.org
(mail.sj6.orgは適当につけてください。mail.example.comとかでいいかも)
これで必要なものが/var/qmailに作成されました。
postmaster、MAILER-DAEMON、rootあてのメールを/var/qmail/aliasに保存するための設定
cd /var/qmail/alias touch .qmail-postmaster .qmail-mailer-daemon .qmail-root chmod 644 .qmail*
起動スクリプトを設置し、起動
cp /var/qmail/boot/home /var/qmail/rc /var/qmail/rc &
動作を確認
ps -aef | grep qmail
qmails 29478 24449 0 15:53 pts/0 00:00:00 qmail-send qmaill 29479 29478 0 15:53 pts/0 00:00:00 splogger qmail root 29480 29478 0 15:53 pts/0 00:00:00 qmail-lspawn ./Mailbox qmailr 29481 29478 0 15:53 pts/0 00:00:00 qmail-rspawn qmailq 29482 29478 0 15:53 pts/0 00:00:00 qmail-clean
メールを出してみる
echo to: root@mail.sj6.org | /var/qmail/bin/qmail-inject
自分宛
gmailにも
echo to: sayjiroあっとまーく(本当は@)gmail.com | /var/qmail/bin/qmail-inject
おお!空メールがgmailに来ました!(SPAM扱いだけど)
次にMaildirを使うために/var/qmail/rcを編集します。
vim /var/qmail/rc
qmail-start ./Mailbox splogger qmail
↓
qmail-start ./Maildir/ splogger qmail
ディレクトリを作成します
/var/qmail/bin/maildirmake ~alias/Maildir chown -R alias /var/qmail/alias/Maildir
各ユーザーのMaildirを作成(ユーザー名はMaildirを作りたい自分のサーバのユーザー名を適当に)
su ユーザー名 /var/qmail/bin/maildirmake ~/Maildir
新規ユーザー用にMaildirが生成されるようにする
/var/qmail/bin/maildirmake /etc/skel/Maildir
現在立ち上がっているqmailのプロセスを全てkillして再起動
kill xxxx xxxx xxxx xxxx(←本当はプロセスID) /var/qmail/rc &
自分宛にメールを送信してみる
echo to: root@mail.sj6.org | /var/qmail/bin/qmail-inject
Maildir/newディレクトリに届くようになります。
次はqmailの起動用にtcpserverをインストールします。
tcpserverはユーザー名・IPアドレス・ドメイン名・同時接続数などを基に接続制限をかけることができる起動プロセスです。
cd /usr/local/src/ wget ftp://ftp.jp.qmail.org/qmail/ucspi-tcp-0.88.tar.gz tar zxvf ucspi-tcp-0.88.tar.gz cd ucspi-tcp-0.88 wget http://qmail.org/moni.csi.hu/pub/glibc-2.3.1/ucspi-tcp-0.88.errno.patch wget http://qmail.org/moni.csi.hu/pub/glibc-2.3.1/ucspi-tcp-0.88.a_record.patch wget http://qmail.org/moni.csi.hu/pub/glibc-2.3.1/ucspi-tcp-0.88.nobase.patch patch -s -p1 <./ucspi-tcp-0.88.errno.patch patch -s -p1 <./ucspi-tcp-0.88.a_record.patch patch -s -p1 <./ucspi-tcp-0.88.nobase.patch
インストールのいつもの作業+パッチを落としてきて当てます。
make make setup check
インストールすると/usr/local/bin/配下にパッケージが入ります。
アクセス制御ファイルの基を/etc/tcp.smtpに作成します。
vim /etc/tcp.smtp
192.168.0.:allow,RELAYCLIENT="" 127.:allow,RELAYCLIENT=""
cdbファイルを作成します。
/usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
起動用のスクリプトを作成します。
vim /etc/init.d/qmail
#!/bin/sh
#
# qmail: /var/qmail
PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin
[ -f /var/qmail/rc ] || exit 0
case "$1" in
start)
# Start daemons.
echo "Starting qmail."
csh -cf '/var/qmail/rc &'
tcpserver -v -u [qmaildのUID] -g [nofilesのGID]-x /etc/tcp.smtp.cdb \
0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 &
echo
touch /var/lock/qmail
;;
stop)
# Stop daemons.
echo "Shutting down qmail."
PID=`/bin/ps -aefw | grep qmail | awk '{print $2}'`
if [ ! -z "$PID" ] ; then
/bin/kill ${PID} 1> /dev/null 2>&1
fi
echo
rm -f /var/lock/qmail
;;
*)
echo "Usage: S99qmail {start|stop}"
exit 1
esac
exit 0
パーミッションを設定し、
chmod 755 /etc/init.d/qmail
自動起動の設定をします。
ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc2.d/S99qmail ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc3.d/S99qmail ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc5.d/S99qmail
これでオッケー。
そしてphpはデフォルトでsendmailを使うようになっているので、php.iniを変更します。
vim /usr/local/lib/php.ini
;sendmail_path =
↓
sendmail_path = /var/qmail/bin/qmail-inject
これでphpからqmailを呼び出すことができます!
関連記事
コメント:0
トラックバック:0
- この記事のトラックバックURL
- http://www.sj6.org/qmail_install_to_centos_and_be_useful_php/trackback/



