OpenBlockS / qmail


メール・サーバー関連のインストール手順


OpenBlockS に qmail とその仲間をインストールして、メール・サーバーを構築する手順。 お家サーバー日記/2005-01-14大量の Double Bounce攻撃を受けて、 現在 Postfix に変えてしまったため、過去の情報となってしまっている。

目次

関連リンク

qmail Quick reference

/var/qmail/control を書き換えたら、qmail-send を再起動 (sudo sh -c "svc -d /service/qmail; svc -u /service/qmail") する必要がある。locals と virtualdomains の変更だけなら -HUP を送れば良い。

内容コマンド
キューの状態を調べるsudo /var/qmail/bin/qmail-qstat
設定一覧を見る/var/qmail/bin/qmail-showctl
どこかへメールを出すecho to: someone@example.jp | /var/qmail/bin/qmail-inject

install

qmail と付随するツール類が改竄されていないかチェックする方法が他のパッケージに比べて少ない。Frequently asked questions from distributors に MD5 checksum が掲載されているが、これごと改竄されていたら打つ手が無いような気がする。とりあえず、私のところで動いているものの MD5 を載せておく。

e75842e908f96571ae56c3da499ba1fc  checkpassword-0.90.tar.gz
1871af2453d6e464034968a0fbcb2bfc  daemontools-0.76.tar.gz
622f65f982e380dbe86e6574f3abcb7c  qmail-1.03.tar.gz
d566e8bd99b33efee0194e855b8d6995  qmail-date-localtime.patch
39b619147db54687c4a583a7a94c9163  ucspi-tcp-0.88.tar.gz

qmail

本体と、ヘッダに記録される日付・時間情報をローカルタイムに合わせるパッチを展開

$ mkdir -p ~/src/01distfiles/qmail
$ cd ~src/01distfiles/qmail
$ wget ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz
$ wget ftp://ftp.nlc.net.au/pub/unix/mail/qmail/qmail-date-localtime.patch
$ cd ../..
$ mkdir qmail
$ cd qmail
$ tar xzvf ../01distfiles/qmail/qmail-1.03.tar.gz
$ cd qmail-1.03
$ patch -p1 < ../../01distfiles/qmail/qmail-date-localtime.patch

make の前に、以下をrootで実行

#!/bin/sh
mkdir /var/qmail
groupadd -g 600 nofiles
useradd -g nofiles -d /var/qmail/alias -s /sbin/nologin -u 610 alias
useradd -g nofiles -d /var/qmail -s /sbin/nologin -u 611 qmaild
useradd -g nofiles -d /var/qmail -s /sbin/nologin -u 612 qmaill
useradd -g nofiles -d /var/qmail -s /sbin/nologin -u 613 qmailp
groupadd -g 601 qmail
useradd -g qmail -d /var/qmail -s /sbin/nologin -u 614 qmailq
useradd -g qmail -d /var/qmail -s /sbin/nologin -u 615 qmailr
useradd -g qmail -d /var/qmail -s /sbin/nologin -u 616 qmails

コンパイル。DNSの準備が充分でなければ(MXレコードでサーバーが登録されているという意味で)、./config-fast を使う。make setup は、他のソース・ツリーで言えば make install に相当する。root で実行する必要がある。

# make setup
# make check
# ./config-fast mail.example.jp

コントロール・ファイルの設定

# cd /var/qmail/control
# echo example.jp >defaultdomain
# cat <<EOF >locals
localhost
localhost.example.jp
host.example.jp
example.jp
EOF
# cat <<EOF >rcpthosts
localhost
example.jp
.example.jp
EOF
# echo mail.example.jp >me
# echo example.jp >plusdomain
# echo example.jp >defaulthost

alias の設定

# cd /var/qmail/alias
# touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
# chmod 644 .qmail*

sendmail の駆逐

# cd /usr/sbin
# mv sendmail sendmail.dist
# chmod 0 sendmail.dist
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

Maildir への移行

# cp /var/qmail/boot/home /var/qmail/rc
# vi /var/qmail/rc

s!/Mailbox!/Maildir/!g とする

alias のメール・ボックスを Maildir にする。

# /var/qmail/bin/maildirmake ~alias/Maildir
# chown -R alias ~alias/Maildir

新規ユーザーの追加 useradd foo -m の時、各ユーザーのホーム・ディレクトリに Maildir が作られるようにする。

# mkdir /etc/skel
# /var/qmail/bin/maildirmake /etc/skel/Maildir

tcpserver による SMTP daemon の起動

$ cd ~src/01distfiles/qmail
$ wget ftp://ftp.jp.qmail.org/qmail/ucspi-tcp-0.88.tar.gz
$ cd ../../qmail
$ tar xzvf ../01distfiles/qmail/ucspi-tcp-0.88.tar.gz
$ cd ucspi-tcp-0.88
$ su
# make setup check
# cd /etc
# cat <<EOF >tcp.smtp
192.168.0.:allow,RELAYCLIENT=""
127.:allow,RELAYCLIENT=""
EOF
# /usr/local/bin/tcprules tcp.smtp.cdb tcp.smtp.tmp <tcp.smtp

起動スクリプトの設定 【後日談: daemontools による管理に変えたのでこの作業は不要になった】

# mkdir -p /usr/local/etc/rc.d
# cd /usr/local/etc.d
# cat <<EOF >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 611 -g 600 -x /etc/tcp.smtp.cdb \
          0 smtp /var/qmail/bin/qmail-smtpd 2>&1 \
          | /var/qmail/bin/splogger smtpd 3 &
        echo
        touch /var/spool/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/spool/lock/qmail
        ;;
   *)
        echo "Usage: S99qmail {start|stop}"
        exit 1
esac

exit 0
EOF
# chmod 755 qmail

立ち上げ時に自動起動するように /etc/rc.local に以下を加える 【後日談: daemontools による管理に変えたのでこの作業は不要になった】

if [ -x /usr/local/etc/rc.d/qmail ]; then
       /usr/local/etc/rc.d/qmail start
fi

メールが届くかどうか確認する。

# /usr/local/etc/rc.d/qmail start
# ps aux | grep qmail
# echo to: root | /var/qmail/bin/qmail-inject
# ls -l /var/qmail/alias/Maildir/new
# cat /var/qmail/alias/Maildir/new/*

届かないようなら、『メイル管理入門 実践編』を参考に調べる。


Courier IMAP

Courier-IMAP server

POP3とIMAPでアクセスできるように、courier を入れる。APOPにはそのままでは対応できないようだが、SSL が使えるので不要だと思われる。POP before SMTP についても、外から SMTP サーバーを使うことはないので、やらない。どうしても外から SMTP したければ、ssh 経由でできる。

http://www.courier-mta.org/download.php から ~/src/01distfiles に courier-imap-1.7.1.tar.bz2 をダウンロードする。パッケージ化も同時に行う。

$ cd ~/src
$ tar xjvf 01distfiles/courier-imap-1.7.1.tar.bz2
$ cd courier-imap-1.7.1
$ ./configure --prefix=/usr/local
$ make
$ mkdir -p ~/src/02locakpkg/courier/courier-imap-1.7.1/etc/pam.d
$ make DESTDIR=~/src/02locakpkg/courier/courier-imap-1.7.1 install
$ cd ~/src/02locakpkg/courier/courier-imap-1.7.1
$ mv etc ..
$ sudo /usr/sbin/chown -R root.wheel usr
$ sudo tar czvf ../courier-imap-1.7.1.tar.gz usr
$ sudo rm -rf usr
$ cd ..
$ sudo tar xzvf courier-imap-1.7.1.tar.gz -C /

/etc/pam.conf に以下を加える。imap エントリは元から存在するので session だけ加えることになる。

#
# The PAM configuration file for the `pop3' service
#
pop3    auth       required   pam_unix.so
pop3    account    required   pam_unix.so
pop3    session    required   pam_unix.so
#
# The PAM configuration file for the `imap' service
#
imap    auth       required   pam_unix.so
imap    account    required   pam_unix.so
imap    session    required   pam_unix.so

設定ファイルを初期化

# cd /usr/local/etc
# cp imapd.dist imapd
# cp imapd-ssl.dist imapd-ssl
# cp pop3d.dist pop3d
# cp pop3d-ssl.dist pop3d-ssl
# cp authdaemonrc.dist authdaemonrc
# cp quotawarnmsg.example quotawarnmsg

サーバー鍵を適当に作るか、認証局で作ってもらう。(ssl を動かさないなら不要)

# cd /usr/local/share
# cp ~/mail.example.jp.pem imapd.pem
# cp imapd.pem pop3d.pem

起動スクリプトを書く(ssl を動かさないならpop3d-ssl, imapd-ssl は削除する)

# cd /usr/local/etc/rc.d
# cat <<EOF >courier
#!/bin/sh
case "$1" in
  start)
        # Start daemons.
        /usr/local/libexec/authlib/authdaemond start
        /usr/local/libexec/pop3d.rc start
        /usr/local/libexec/pop3d-ssl.rc start
        /usr/local/libexec/imapd.rc start
        /usr/local/libexec/imapd-ssl.rc start
        ;;
  stop)
        # Stop daemons.
        /usr/local/libexec/pop3d.rc stop
        /usr/local/libexec/pop3d-ssl.rc stop
        /usr/local/libexec/imapd.rc stop
        /usr/local/libexec/imapd-ssl.rc stop
        /usr/local/libexec/authlib/authdaemond stop
        ;;
   *)
        echo "Usage: S99courier {start|stop}"
        exit 1
esac

exit 0
EOF
# chmod 755 courier

立ち上げ時に自動起動するように /etc/rc.local に以下を加える

if [ -x /usr/local/etc/rc.d/courier ]; then
       /usr/local/etc/rc.d/courier start
fi

MUA(mozilla 等がおすすめ)でアクセスしてみる

daemontools

どうも、起動時や DNS がおかしい場合に、smtp が止まってしまうようなので、こうなったら毒を食らわば皿までよ、ってことで daemontools を入れることにした。@IT: daemontoolsによるロギングとプロセス監視(1-3) のとおりでうまくいった。毒とは失礼な表現だが、セキュリティ的な意味ではなく、ディレクトリの構成とかメンテナンスのしやすさ -- これも問題は文化の違いだけだと思われるが -- とかを見て、私が感じた表現である。

$ cd ~/src/01distfiles/qmail
$ wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz 
$ su
# mkdir -p /package
# chmod 1755 /package
# tar -xzvpf daemontools-0.76.tar.gz -C /package
# cd /package/admin/daemontools-0.76
# ./package/install
# vi /var/qmail/rc
:s!qmail-start ./Maildir/ splogger qmail!qmail-start ./Maildir/!
:w
:q
# mkdir /var/qmail/services
# mkdir /var/qmail/services/qmail
# mkdir /var/qmail/services/qmail/log
# chmod +t /var/qmail/services/qmail 
# cat <<EOF >/var/qmail/services/qmail/run
#!/bin/sh
PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin
exec /var/qmail/rc
EOF
# cat <<EOF >/var/qmail/services/qmail/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail
EOF
# chmod +x /var/qmail/services/qmail/run
# chmod +x /var/qmail/services/qmail/log/run
# mkdir /var/log/qmail
# chown qmaill.nofiles /var/log/qmail 
# chmod 700 /var/log/qmail 
# cd /service/
# ln -s /var/qmail/services/qmail .
# mkdir /var/qmail/services/smtpd
# mkdir /var/qmail/services/smtpd/log
# chmod +t /var/qmail/services/smtpd 
# cat <<EOF >/var/qmail/services/smtpd/run
#!/bin/sh
PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin
tcpserver -v -u 611 -g 600 -x /etc/tcp.smtp.cdb \
0 smtp /var/qmail/bin/qmail-smtpd 2>&1
EOF
# cat <<EOF >/var/qmail/services/smtpd/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmails /usr/local/bin/multilog t /var/log/smtpd
EOF
# chmod +x /var/qmail/services/smtpd/run
# chmod +x /var/qmail/services/smtpd/log/run
# mkdir /var/log/smtpd
# chown qmails.nofiles /var/log/smtpd 
# chmod 700 /var/log/smtpd 
# cd /service/
# ln -s /var/qmail/services/smtpd .

以前の起動スクリプトは動かないようにしておく。

# cd /usr/local/etc/rc.d
# mv qmail qmail.old
# chmod 644 qmail.old

Quick Reference

smtpd とか qmail/log とか個別でサービスを止めたりしなければならない

内容コマンド
サービスを止めるsudo svc -d /service/qmail
サービスを開始sudo svc -u /service/qmail
ログを見るsudo tail -50 /var/log/qmail/current | tai64nlocal

fetchmail

過去のいろんなところに作った POP3 アカウントのメールを自宅サーバーで一括して受けるために、fetchmail を入れてみる。

GNU gettext によって日本語のメッセージが出せるようだが、コンパイルが止まってしまうようなので、--disable-nls して使わないようにした。翻訳してくれた人には悪いが、どうせ cron で動かすのだから、エラーメッセージ等が日本語である必要はない。

WEB には、GPG の signature ファイルが存在するような記述があるのだが、落とせないようだ。checksums は落とせるので、これを gpg で検証して、本体は md5sum でチェックする。

$ cd ~/src/01distfiles
$ wget http://www.catb.org/~esr/fetchmail/fetchmail-6.2.3.tar.gz
$ wget http://www.catb.org/~esr/fetchmail/checksums
$ gpg --verify checksums
$ grep tar checksums
e131bdb6c3977fd47a3e122c43dcf19d fetchmail-6.2.3.tar.gz
$ md5sum fetchmail-6.2.3.tar.gz
e131bdb6c3977fd47a3e122c43dcf19d fetchmail-6.2.3.tar.gz
$ cd ..
$ tar xzvf 01distfiles/fetchmail-6.2.3.tar.gz
$ cd fetchmail-6.2.3
$ ./configure --disable-nls
$ make
$ mkdir ~/src/02localpkg/fetchmail
$ make DESTDIR=~/src/02localpkg/fetchmail install
$ cd ../02localpkg/fetchmail
$ tar czvf fetchmail-6.2.3-ssdlinux-1.tgz --owner=root --group=wheel usr
$ rm -rf usr
$ sudo tar xzvf fetchmail-6.2.3-ssdlinux-1.tgz -C /

fetchmailconf を動かすには、python が必要だ。とりあえず、手で設定ファイルを書くことにする。smtpname を書かないと、現在のユーザー名@localhost というアドレスに転送されるようだ。/var/qmail/locals に localhost の記述がない場合、外に出て行ってしまうので注意。設定の記述方法に関しては、Red Hat Linux レファレンス・ガイドが参考になる。

$ cat .fetchmailrc
set no bouncemail

defaults
 protocol pop3
 uidl
 no rewrite
 no keep
 no mimedecode
 smtpname "otsuka@example.jp"

skip pop3.provider1.example.jp
 user "otsuka"
 pass "secret1"
 smtpname "otsuka-provider1@example.jp"

poll pop3.provider2.example.jp
 user "abcd001"
 pass "secret2"
 smtpname "otsuka-provider2@example.jp"

smtpname で転送先を変えて、前振り分けでプロバイダごとに IMAP フォルダに直接配信している。再配送には、smtp (tcp/25) を使うようだ。この場合問題点として、localhost で qmail での配送に失敗した場合、差出人に返されてしまう。smtp の入り口でエラーになると fetchmail が set no bouncemail 設定に従って postmaster にエラーを報告するようにできるようだが、qmail の場合は、受け取った後でエラーになり、qmail 自身がエラー報告してしまうので、まずいことになる。(通常 pop3 から先は、配送経路とは関係ない場所なので、ここからエラーメールを返されても送信者は困惑するだろう)。

cron で fetchmail を定期的に起動する。ログは溜まってくるのがいやなので syslog に 渡すことにする。${HOME}/.fetchmailrc に set syslog を書いておけばいいようだ。 syslogにセットしていても、fetchmail 実行時に ... のような出力がある。 cronで実行するときは、これがメールで飛んでくるのでうっとうしい。 fetchmail に -s オプションを付けて起動すると、syslog まで silent になってしまって、ログが全く無くなってしまう。融通の利かないやつだ。 fetchmailには、自分で daemon として動く機能があるから、コマンドラインで呼び出すのは人間が手でやっているに違いない、とでも思って設計しているのだろうか。 とりあえず、不要な出力は適当なファイルにリダイレクトすることにする。 何か不具合があった場合だけエラーを表示してくれたら、cron のメールを捕まえて 対処できるのに。

SHELL=/bin/sh
5 7 * * *       /usr/local/bin/fetchmail > $HOME/lib/fetchmail.out 2>&1

maildrop

http://www.courier-mta.org/download.php から ~/src/01distfiles に maildrop-1.5.3.tar.bz2 をダウンロードする。パッケージ化も同時に行う。

$ cd ~/src
$ tar xjvf 01distfiles/maildrop-1.5.3.tar.bz2
$ cd maildrop-1.5.3
$ ./configure
$ make
$ mkdir ~/src/02localpkg/maildrop
$ make DESTDIR=~/src/02localpkg/maildrop install
$ cd ~/src/02localpkg/maildrop

courier-IMAP とファイルが重なっているようだ。

$ cd ~/src/02localpkg/maildrop
$ find usr -type f -print | (cd /; xargs file) | grep -v "can't stat"
usr/local/man/man1/maildirmake.1: troff or preprocessor input text
usr/local/man/man8/deliverquota.8: troff or preprocessor input text
usr/local/bin/maildirmake: ELF 32-bit MSB executable, PowerPC or cisco
4500, version 1 (SYSV), for GNU/Linux 2.0.0, dynamically linked (uses 
shared libs), not stripped

courier-IMAP のファイルを使うことにして、こちらのパッケージからは削除する。

$ cd ~/src/02localpkg/maildrop
$ rm usr/local/man/man1/maildirmake.1
$ rm usr/local/man/man8/deliverquota.8
$ rm usr/local/bin/maildirmake
$ tar czvf maildrop-1.5.3-ssdlinux-1.tgz --owner=root --group=wheel usr

動作テスト

$ cat ~/.mailfilter
to "Maildir"
$ chmod 600 ~/.mailfilter
$ cat dummy-mail
To: otsuka
From: root
Subject: test mail

this is test
$ maildrop <dummy-mail
maildrop: Delivery complete.
maildrop: signal 0x06

なぜか、signal 0x06 が出て異常終了となる。signal を受ける部分は、ソース maildrop/maildrop.C にあるのだか、どうも 0 から NSIG(=64) の全てにトラップをかけているようだ。signal 6 は、/usr/include/bits/signum.h にあるように SIGIOT なのだが、この signal はすでに使われていないような気がする[Linux GCC HOWTO]。~/.mailfilter を消せば正常終了するようだが、フィルタが書けなければ意味が無い。ちなみに ~/.mailfilter は、他人が読めるような属性になっているばあいは、読み込まれないので注意。

fetchmail の rc-file を以下のようにしてテスト

$ cat test-fm
set no bouncemail

defaults
protocol pop3
uidl
no rewrite
no keep
no mimedecode
mda "maildrop .mailfilter"

poll pop3.provider1.example.jp
user "otsuka"
$ fetchmail -v -f test-fm

日々の運用

前振り分け

  1. otsuka-123@example.jp というようなアドレスをホームページなどに書いておく
  2. MUA で IMAP フォルダ Junk を作る
  3. $HOME/.qmail-default に /home/otsuka/Maildir/.Junk/ と書いておけば、otsuka-xxx@example.jp のような宛先のメールは、全て Junk フォルダ直行となる。biff も吠えない。
  4. メーリングリストへは、otsuka-ml@example.jp のようなアドレスで参加して、$HOME/.qmail-ml で特定の IMAP フォルダに振り分ければよい。

ログイン名とメールアドレスの使い分け

ログイン名をメールアドレスにしたくない場合は、対応表を作って対処できる。

$ sudo sh -c "/var/qmail/bin/qmail-pw2u </etc/passwd >/var/qmail/users/assign"
$ sudo vi /var/qmail/users/assign

ログイン名 otsuka で、メールアドレスを foo@example.jp とし、foo-xxx@example.jp でも受け取りたい場合は、

+:alias:610:600:/var/qmail/alias:-::
=alias:alias:610:600:/var/qmail/alias:::
+alias-:alias:610:600:/var/qmail/alias:-::
=otsuka:otsuka:32769:100:/home/otsuka:::
=foo:otsuka:32769:100:/home/otsuka:::
+foo-:otsuka:32769:100:/home/otsuka:-::
.

とすれば良いだろう。最終行のピリオドを忘れないように。/var/qmail/users/assign を更新したら、qmail-newu で変更を反映しておく。

$ sudo /var/qmail/bin/qmail-newu

拡張アドレス (foo-xxx@example.jp のようなアドレス) で受け取りたいときは、さらに HOME/.qmail-default もしくは、HOME/.qmail-xxx を書いておかないと、配送エラーで差出人に戻される。

$ cat <<EOF >~/.qmail-default
/home/otsuka/Maildir/
EOF

携帯電話に出せない場合

ADSLのアクセス・ポイントのアドレスでメール・サーバーを運用する場合、相手先のポリシーによっては断られることがある。その場合、プロバイダの smtp サーバーへ渡してしまえば良い。プロバイダの送信用のメール・サーバーが smtp.example.jp の場合、

$ sudo sh -c "echo :smtp.example.jp >/var/qmail/control/smtproutes"

但し、プロバイダのメール・サーバーがメールの中継を許可している必要がある。幸い私のプロバイダは、アクセス・ポイントからの送信に限っては、中継してくれるようなので問題無かったが、POP3 でアクセスしてからでないとメールを出せないプロバイダの場合は、何らかの対策をする必要がある。

コンソール通知

UNIXでは、login 時と shell のコマンド・プロンプトが出るタイミングでメールボックスをチェックしてくれて、"You have New Mail" とか出してくれる機能がある。これが、Maildir にすることによって機能しなくなっている。POP3 とか IMAP4 でアクセスできるのだから不要だといえば不要なのだが、設定できるのならしておきたい。

l/etc/login.defs にある QMAIL_DIR 環境変数をセットすれば、環境変数 MAILDIR=/home/otsuka/Maildir とセットしてくれるようになるが効能は不明。しかも、ssh を使ったログインだとセットされない。

bash が Maildir に対応しているのかどうか不明だが、どうもだめなようだ。mailbox 形式の場合は、環境変数 MAIL と MAILPATH にセットすればいいのだが、Maildir 形式の場合は設定できないようだ。


でたらめの差し戻し先

最近のルータで、何か異常が起きたら特定のメールアドレスへメールを送ってくれるものがある。そのメールを受け取って、さらに携帯電話へも転送しようとしたら、問題が発生した。

まず最初、メールを出す機器が、差し戻し先 (Return-Path:) に、でたらめなアドレス (root@mailto.localhost など) を入れる。これは、メールは出せるが受け取ることが出来ないルータ等の機器の場合、しかたのないことかもしれない。転送先の携帯電話のメール・サーバーは、このでたらめな差し戻し先が気に食わないので、受け取りを拒否した。しかたが無いので、このような経緯を追加して差し戻しを行おうとしたら戻せない。最後に MAILER-DAEMON へ差し戻しとなってしまった。

あんまり良い対応とはいえないが、/var/qmail/control/locals に機器が設定してきたでたらめのドメイン名 mailto.localhost を加えて、外に出ないようにした。本来、メールが出せる機器で、差し戻し先も設定できるようにすべきだと思う。

加えて、携帯電話への転送は、dot-qmail でシェル・スクリプトを起動し、ここでメールを作り直してから qmail-inject へ投げなおしている。これなら、差し戻し先はこのサーバーなので問題ない。

解決済みの問題点

  1. shell からユーザー名だけでメールを出したとき、省略した From や、To にホスト名(/var/qmail/control/me の内容)が出てきてしまう。sudo sh -c "echo example.jp >/var/qmail/control/defaulthost" とする。
  2. tcpserver で起動した smtp や pop3d が止まっていることがある。再起動を行った場合は smtp が必ず止まってしまうようだ。ログを見ても理由が書いてない。daemontools を使えば、止まったときには再起動してくれるようだ。qmail 教は寡黙なのを美としているようだ(勝手な思い込みかもしれない)が、これでは対策のしようが無い。起動スクリプト (/usr/local/etc/rc.d/qmail) で一旦止めてから動かすと、止まることは無いようだ。停電などの場合に自動復帰しないのは非常に困る。
  3. pop3 と smtp を ssl 化しようとしているが、stone や stunnel が動かない。

免責事項

ここに記載されている内容を実際に運用した場合のトラブルに関しては一切責任を負えませんのでご了承ください。
Copyright 2000-2005 Koichi Otsuka