MTA | sendmail | postfix | qmail

qmail

内部構造 (INTERNALS qmail-1.03) (前野年紀 訳)
http://www.jp.qmail.org/q103/jmisc/internals.html
本家
http://www.qmail.org/
本家 その二
http://cr.yp.to/qmail.html
qmail FAQ
これは一度目を通しておいた方がいい。
http://cr.yp.to/qmail/faq.html
前野さんから
http://www.jp.qmail.org/
村田さんから
「sendmail の設定の複雑さには泣かされたことがある管理者も多いことでしょう」
http://www.y-min.or.jp/~nob/qmail/
同じく村田さんの中の qmail の設置方法
http://www.y-min.or.jp/~nob/qmail/install.html
How to Configure Qmail to be a Selective Relay
tcpserver と RELAYCLIENT を使った設定例
http://qmail.3va.net/qdp/qmail-antirelay.html
qmailのインストール
http://fox.hokkai.or.jp/~hachikun/linux/qmail.html
avoid to fail on relay-test.mail-abuse.org
(Just a private modification to qmail-smtpd)
relay-test.mail-abuse.org-patch
maps relay test は間違っている
http://homepages.tesco.net/~J.deBoynePollard/FGA/maps-relay-test-is-wrong.html
(ではどうやって負荷をかけない試験をやればいいっていうの)
DJB's software maniacs (qmail 関連情報)
http://www.emaillab.org/djb/
qmail の patch についてのアンケート
http://www.emaillab.org/djb/qmail-patch/patch-questionnaire.html
qmail の記録・誤り文
http://www.cla.kobe-u.ac.jp/Jouhou/96/miyake/sotsuron/10syou.htm
qmail HOW-TO version 2
http://www.flounder.net/qmail/qmail-howto.html
fml +qmail + vpopmail
http://www.kitanaka.net/~eiji/fml-qmail.html
時刻に localtime を使う
ftp://ftp.nlc.net.au/pub/unix/mail/qmail/qmail-date-localtime.patch
sendmail を捨て,qmail に乗り換える
仙谷さんが日経 Linux に書いた記事。図解があって分り易い。
http://www.gcd.org/sengoku/docs/NikkeiLinux00-03/Welcome.ja.html
qmail でメールサーバ構築
http://www.ep.sci.hokudai.ac.jp/~epmail/dvlop/qmail.html
12 Steps to qmail List Bliss
or, How to Use the qmail Mailing List Effectively
http://www.qcc.sk.ca/~charlesc/writings/12-steps-to-qmail-list-bliss.html
Lift with qmail (By Dave Sill)
http://www.lifewithqmail.org/lwq.html

IPv6

IPv6 対応
http://pyon.org/fujiwara/qmail-1.03-v6-20001010.diff
tcpserver + IPv6
IPv6 で使うにはこれが必須
http://www.fefe.de/ucspi/
qmailのIPv6化
http://www.gizo.net/bsd/qmailv6.html
qmail を使ったメールサーバの構築
http://www.ancientlibrary.net/FreeBSD/qmail.html

/usr/pkgsrc/mail/qmail

make; make install します。

man page

説明は /var/qmail/man に入るので、
setenv MANPATH "/usr/share/man:/usr/local/man:/usr/pkg/man:/var/qmail/man"
しておくか、同様のことを ~/.login, ~/.xsession 等に書いておきます。 あるいは /etc/man.conf に設定する方が親切かも知れません。
--- /etc/man.conf--ooo  Tue Dec 11 15:16:29 2001
+++ /etc/man.conf       Tue Dec 11 15:16:49 2001
@@ -39,6 +39,7 @@
 X11R6          /usr/X11R6/man/
 packages       /usr/pkg/man/
 local          /usr/local/man/
+qmail          /var/qmail/man/
 
 doc            /usr/{pkg,share}/doc/{sendmail/op,sendmail/intro}

あるいは、その設定がない時には
nroff -mandoc /var/qmail/man/man*/controls | less
のようにして読みます。

controls

sendmail.cf に相当する設定はこの目録(directory)に用意します。
man qmail-control をすると設定項目を見ることが出来ます。
但し通常は
cd /usr/pkgsrc/mail/qmail/work/qmail-1.03
./config 
とするだけで大丈のはずです。具体的には次のような表示が出ます。
makoto@u  10:54:18/011209(...work/qmail-1.03)# ./config
Your hostname is u.
Your host's fully qualified name in DNS is u.ki.nu.
Putting u.ki.nu into control/me...
Putting ki.nu into control/defaultdomain...
Putting ki.nu into control/plusdomain...
 
Checking local IP addresses:
127.0.0.1: Adding LOCALHOST to control/locals...
210.145.40.123: Adding u.ki.nu to control/locals...

If there are any other domain names that point to you,
you will have to add them to /var/qmail/control/locals.
You don't have to worry about aliases, i.e., domains with CNAME records.
 
Copying /var/qmail/control/locals to /var/qmail/control/rcpthosts...
Now qmail will refuse to accept SMTP messages except to those hosts.
Make sure to change rcpthosts if you add hosts to locals or virtualdomains!
そうして、 次の必要最少限の五項目が自動的に設定されます。
defaultdomain 自機からメールを出す時に @ のない宛先に付加えるも
locals 自前で受取ってしまう (qmail-local 処理するもの)
me 自分の機械の名前 (FQDN)
plusdomain 自機からメールを出す時に + で終っていたら追加する名前
rcpthosts 中継も含めて、とりあえず受取るもの (Recipient Hosts)
ここでの 設定内容は (/var/qmail/bin/) qmail-showctl で見られます。

alias

$USER を foo@var.hoge に転送する場合、 /var/qmail/alias の下に .qmail-$USER という名前の譜の中に &foo@var.hoge と書いておきます。

(alias) root postmaster mailer-daemon 宛

(この項は pkgsrc/mail/qmail で make install した場合不要です)
# cd /var/qmail/alias
# touch .qmail-root .qmail-postmaster .qmail-mailer-daemon
としておくと、空のものが出来ますが、その時は roog, postmaster, mailer-daemon 先のメールは /var/qmail/alias/Mailbox に入ります。

Maildir

cd 
maildirmake $HOME/Maildir
echo ./Maildir/ > ~/.qmail

/var/qmail/rc

cp /var/qmail/boot/home /var/qmail/rc
としておき、この /var/qmail/rc を起動に使います。 例えば /etc/rc.local に
if [ -f /var/qmail/rc ]; then
   csh -cf '/var/qmail/rc &'
fi
と書いておきます。手で上記 csh -cf '/var/qmail/rc &' を入れて、 ps ax |grep qmail すると
1846 p5 S    0:00.03 qmail-send 
1847 p5 S    0:00.02 splogger qmail 
1848 p5 S    0:00.01 qmail-lspawn ./Mailbox 
1849 p5 S    0:00.01 qmail-rspawn 
1850 p5 S    0:00.01 qmail-clean 
のようなものが見えます。

To avoid 3rd party relaying

fml などを使う時には、自分からは中継を許し、他からは許可しない設定 が必要です。そのためには 具体的には次のようにします。
NetBSD/macppc-1.5.2 の機械に
  qmail-1.0.3 を /usr/pkgsrc/mail/qmail/ から入れて、更に
  ucspi-tcp-0.88 を /usr/pkgsrc/net/ucspi-tcp/ から入れて、
次のような規則を用意して
  mkdir /etc/tcp-rule
  makoto@harry  15:11:28/011205(...qmail/control)# cat /etc/tcp-rule/tcp.smtp 
  210.145.40.112-127:allow,RELAYCLIENT=""
  127.:allow,RELAYCLIENT=""
  :allow
この規則は次のように変換します。
 mkdir /etc/tcp-rule.db
 tcprules < /etc/tcp-rule/tcp.smtp /etc/tcp-rule.db/smtp.db /etc/tcp-rule.db/smtp.tmp
そうして /var/qmail/control/rcpthosts には次のように書いています。
 makoto@harry  15:11:38/011205(...qmail/control)# cat rcpthosts 
  harry4.ki.nu
  harry.ki.nu
  localhost
 
機械の名前は harry なのですが、IPv4 だけで利用出来るように harry4 という名前も 付けています。

tcpserver は次のように起動しています。

+-------------------------
| makoto@harry  15:28:58/011205(...qmail/control)# cat /etc/start-tcpserver 
| #!/bin/sh
| # $Header: /e/u/j/local-repository/htdocs/www/software/mail/qmail/index.shtml,v 1.1.1.1 2008/03/12 10:53:34 makoto Exp $
| # http://qmail.3va.net/qdp/qmail-antirelay.html
| #
| /usr/pkg/bin/tcpserver -c100 -x/etc/tcp-rule.db/smtp.db -u1014 -g1001 0 smtp \
| /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd &
+-------------------------

local mail test

echo mail test | /var/qmail/bin/qmail-inject makoto@localhost --- Last Update
19:53:34 03/12/08
claudebot
Apache/2.0.65 (Unix) mod_ssl/2.0.65 OpenSSL/1.0.1g DAV/2 PHP/5.4.26
Count.cgi
(since 2001/12/05)