| http://www.qmail.org/top.html |
| http://cr.yp.to/ |
| http://www.jp.qmail.org/ |
| qmail本体 | qmail-1.03.tar.gz | http://www.qmail.org/top.html |
| 日時をローカル時にするパッチ | qmail-date-localtime.patch | ftp://ftp.nlc.net.au/pub/unix/mail/qmail/ |
| POP3平文パスワード認証 | checkpassword-0.90.tar.gz | http://cr.yp.to/checkpwd.html |
| POP/APOPパスワード認証 | checkpw-0.90.tar.gz | http://checkpw.sourceforge.net/checkpw/ |
| TCPサーバー | ucspi-tcp-0.88.tar.gz | http://cr.yp.to/ucspi-tcp.html |
| デーモンツール(中継制御で使う) | daemontools-0.70.tar.gz | http://untroubled.org/rpms/daemontools/ |
| 中継制御(POP before SMTPで使う) | relay-ctrl-3.0.tar.gz | http://untroubled.org/relay-ctrl/ |
# tar xvfz qmail-1.03.tar.gz # tar xvfz checkpw-0.90.tar.gz # cd qmail-1.03/ # patch -p1 < ../qmail-date-localtime.patch # patch -p1 < ../checkpw-0.90/qmail-popup-auth.patch # mkdir /var/qmail # groupadd -g 55 nofiles # useradd -g nofiles -d /var/qmail/alias -s /bin/false -u 55 alias # useradd -g nofiles -d /var/qmail -s /bin/false -u 56 qmaild # useradd -g nofiles -d /var/qmail -s /bin/false -u 57 qmaill # useradd -g nofiles -d /var/qmail -s /bin/false -u 58 qmailp # groupadd -g 56 qmail # useradd -g qmail -d /var/qmail -s /bin/false -u 59 qmailq # useradd -g qmail -d /var/qmail -s /bin/false -u 60 qmailr # useradd -g qmail -d /var/qmail -s /bin/false -u 61 qmails # make # make setup check エラーが出るならconf-ccとconf-ldファイルを編集し、 gccを使用するなどする。 # ./config > Your hostname is myhost.mydomain > hard error > Sorry, I couldn't find your host's canonical name in DNS. となる時、 dns,/etc/hostsを調べる。 どーしても、分かんない時 # ./config-fast myhost.mydomain |
# cd ../checkpw-0.90 conf-homeファイルを修正し/var/qmailにする。 # make # make setup check |
# cd .. # tar xvfz checkpassword-0.90.tar.gz # cd checkpassword-0.90 conf-homeファイルを修正し/var/qmailにする。 # make # make setup check |
# cd .. # tar xvfz ucspi-tcp-0.88.tar.gz # cd ucspi-tcp-0.88/ # make # make setup check |
# cd .. # tar xvfz daemontools-0.70.tar.gz # cd daemontools-0.70 # make # make setup check "make: *** [tai64nlocal.o] エラー 1"などのエラーが出るなら、 tai64nlocal.c の2行目を、 "<sys/time.h>"から"<time.h>"に変更してみる。 |
POP before SMTP 用 # cd .. # tar xvfz relay-ctrl-3.0.tar.gz # cd relay-ctrl-3.0 conf-binファイルを修正し/var/qmail/binにする。 conf-manファイルを修正し/var/qmail/manにする。 # make # ./installer # cd /var/qmail # chmod u+s bin/relay-ctrl-allow # mkdir relay-ctrl # mkdir etc/relay-ctrl # echo "/var/qmail/relay-ctrl" > etc/relay-ctrl/RELAY_CTRL_DIR # echo "900" > etc/relay-ctrl/RELAY_CTRL_EXPIRY # crontab -e * * * * * /usr/local/bin/envdir /var/qmail/etc/relay-ctrl /var/qmail/bin/relay-ctrl-age 一行に書く。 |
/var/qmail/control/defaultdomain ---------------------------
mydomain
------------------------------------------------------------
省略時ドメイン名。
ドットがないホスト部にはこの名前を追加する。
qmal-injectが利用。
/var/qmail/control/defaulthosts ----------------------------
myhost.mydomain
------------------------------------------------------------
省略時ホスト名。
ホスト部のないアドレスにはこの名前を追加する。
qmal-injectが利用。
/var/qmail/control/locals ----------------------------------
localhost
localhost.mydomain
myhost
myhost.mydomain
以下MXサーバーの時追加
mydomain
------------------------------------------------------------
ローカル処理すべきドメイン名の一覧
qmail-sendが利用。
/var/qmail/control/me --------------------------------------
myhost.mydomain
------------------------------------------------------------
自サーバのFQDN。
/var/qmail/control/plusdomain ------------------------------
mydomain
------------------------------------------------------------
追加ドメイン名。
プラス("+")で終るホスト名にはこの名前を付け加える。
qmal-injectが利用。
/var/qmail/control/rcpthosts -------------------------------
myhost.mydomain
以下MXサーバーの時追加
mydomain
------------------------------------------------------------
受信ドメイン一覧。
SMTPのRCPTに現れてよいドメイン名。
ここに載っていないドメイン宛のメイルは受け取らない。
qmail-smtpdが利用。
|
# cd /var/qmail/alias # touch .qmail-postmaster .qmail-mailer-daemon .qmail-root /var/qmail/alias/Maildirに配送される。 他に転送の場合は、 .qmail-postmaster .qmail-mailer-daemon .qmail-root の必要なファイルに 転送先メールアドレスを &user@aaa.bbb.com の様に書く。 頭の&はuserの最初の文字が英数字の場合は省略可能。 # chown alias .qmail* # chmod 644 .qmail* |
/var/qmail/alias/Maildir ----------------------------------- # /var/qmail/bin/maildirmake /var/qmail/alias/Maildir # chown -R alias /var/qmail/alias/Maildir ------------------------------------------------------------ /home/USER/MaildirをUSERが自分で作成する。 # /var/qmail/bin/maildirmake ~/Maildir /home/USER/Maildirをrootが既存ユーザーホームに作成する。 # su USER # /var/qmail/bin/maildirmake ~/Maildir # exit /etc/skel/Maildir ------------------------------------------ 新規ユーザー登録時に自動作成させる為の設定 # /var/qmail/bin/maildirmake /etc/skel/Maildir |
# service sendmail stop "存在しない"エラーは無視する。 # mv /etc/rc.d/rc0.d/S80sendmail /etc/rc.d/rc0.d/_S80sendmail # mv /etc/rc.d/rc1.d/S80sendmail /etc/rc.d/rc1.d/_S80sendmail # mv /etc/rc.d/rc2.d/S80sendmail /etc/rc.d/rc2.d/_S80sendmail # mv /etc/rc.d/rc3.d/S80sendmail /etc/rc.d/rc3.d/_S80sendmail # mv /etc/rc.d/rc4.d/S80sendmail /etc/rc.d/rc4.d/_S80sendmail # mv /etc/rc.d/rc5.d/S80sendmail /etc/rc.d/rc5.d/_S80sendmail # mv /etc/rc.d/rc6.d/S80sendmail /etc/rc.d/rc6.d/_S80sendmail # mv /etc/rc.d/rc0.d/K30sendmail /etc/rc.d/rc0.d/_K30sendmail # mv /etc/rc.d/rc1.d/K30sendmail /etc/rc.d/rc1.d/_K30sendmail # mv /etc/rc.d/rc2.d/K30sendmail /etc/rc.d/rc2.d/_K30sendmail # mv /etc/rc.d/rc3.d/K30sendmail /etc/rc.d/rc3.d/_K30sendmail # mv /etc/rc.d/rc4.d/K30sendmail /etc/rc.d/rc4.d/_K30sendmail # mv /etc/rc.d/rc5.d/K30sendmail /etc/rc.d/rc5.d/_K30sendmail # mv /etc/rc.d/rc6.d/K30sendmail /etc/rc.d/rc6.d/_K30sendmail # cd /usr/sbin # mv sendmail sendmail.iranai # chmod 0 sendmail.iranai # ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail |
リレーを許可するホスト/ドメインの設定。 # cd /var/qmail/etc /var/qmail/etc/tcp.smtp ------------------------------------ 192.168.0.:allow,RELAYCLIENT="" 127.:allow,RELAYCLIENT="" =host.domain:allow,RELAYCLIENT="" =.domain:allow,RELAYCLIENT="" 192.168.1.0-31:allow,RELAYCLIENT="" =mailserver.domain:allow,RELAYCLIENT="" 192.168.99.:deny ------------------------------------------------------------ などの様に、思う存分書く! # /usr/local/bin/tcprules tcp.smtp.cdb tmp < tcp.smtp |
/var/qmail/bin/selectcheckpw -------------------------------
#!/bin/sh
# WARNING: This file was auto-generated. Do not edit!
case "$AUTH" in
apop)
# ~/Maildir/.password と照合する。
exec /var/qmail/bin/checkapoppw $*
;;
pop)
# ~/Maildir/.password と照合する時。
# exec /var/qmail/bin/checkpw $*
#
# 従来と同じshadowで照合する時。
exec /var/qmail/bin/checkpassword $*
;;
*)
exit 1
;;
esac
------------------------------------------------------------
|
/etc/rc.d/init.d/qmail -------------------------------------
#!/bin/sh
#
# qmail: /var/qmail
PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin
[ -f /var/qmail/qmail.rc ] || exit 0
case "$1" in
start)
# Start daemons.
echo "Starting qmail....."
/var/qmail/qmail.rc
echo
touch /var/lock/qmail
;;
stop)
# Stop daemons.
echo "Shutting down qmail....."
PID=`/bin/ps -aef | grep "qmail[-l/d]" | awk '{print $2}'`
if [ ! -z "$PID" ] ; then
/bin/kill ${PID} 1> /dev/null 2>&1
fi
echo
rm -f /var/lock/qmail
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: qmail {start|stop|restart}"
exit 1
esac
exit 0
------------------------------------------------------------
# chmod 700 /etc/rc.d/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
# ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc0.d/K99qmail
# ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc1.d/K99qmail
# ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc4.d/K99qmail
# ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc6.d/K99qmail
# cd /var/qmail
# cp boot/home rc
# chmod 700 rc
/var/qmail/rc ----------------------------------------------
#!/bin/sh
# Using splogger to send the log through syslog.
# Using qmail-local to deliver messages to ~/Mailbox by default.
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/ splogger qmail &
~~~~~~~~~~ ~
------------------------------------------------------------
/var/qmail/qmail.rc ----------------------------------------
#!/bin/sh
PATH=/var/qmail/bin:/usr/local/bin:$PATH
[ -f /var/qmail/rc ] || exit 0
envdir /var/qmail/etc/relay-ctrl \
tcpserver -v -u `id -u qmaild` -g `id -g qmaild` -p -x \
/var/qmail/etc/tcp.smtp.cdb 0 smtp \
/var/qmail/bin/relay-ctrl-check \
/var/qmail/bin/qmail-smtpd 2>&1 | \
/var/qmail/bin/splogger smtpd 3 &
envdir /var/qmail/etc/relay-ctrl \
tcpserver -v 0 pop3 \
/var/qmail/bin/qmail-popup myhost-FQDN \
/var/qmail/bin/selectcheckpw \
/var/qmail/bin/relay-ctrl-allow \
/var/qmail/bin/qmail-pop3d Maildir 2>&1 | \
/var/qmail/bin/splogger pop3d 3 &
/var/qmail/rc
exit 0
------------------------------------------------------------
# chmod 700 qmail.rc
|
# service qmail start |