* [[qmail]]
メールサーバ(Mail Transfer Agent)です。ありゃ?いつのまにかパブリックドメインになっている!んーでも5年遅すぎたように思いますがどうでしょうか。
[[qmailパッケージがパブリックドメインに>http://japan.zdnet.com/oss/story/0,3800075264,20362338,00.htm]]

#contents

** 環境設定
http://cr.yp.to/qmail.htmlから
 qmail
 ucspi-tcp
 checkpassword or checkpw(APOP対応 vpopmailを使う場合はいりません。)
 qmailanalog
をダウンロードします。ソースは/usr/loca/srcに展開します。~
またhttp://mirror.averse.net/pub/FreeBSD/ports/local-distfiles/sada/もしくはhttp://ftp.sg.freebsd.org/pub/FreeBSD/ports/local-distfiles/sada/ からqmail-date-localtime.patchをダウンロードしておいてください。日本時間で表示するために必要になります。
さらにこれも落としておいてください。メールアドレス中の%と!と複数の@に対応できていないためのパッチです。これをしてないために、http://www.rbl.jp/svcheck.phpでひっかかってました。http://www.qmail.org/qmail-smtpd-relay-reject~
vpopmailを使わずに、APOP対応させてたい場合は、http://checkpw.sourceforge.net/checkpw/からcheckpw-1.01.tar.gzをダウンロードして、
 tar xzvf checkpw-1.01.tar.gz
 cd checkpw-1.01
 make setup check 
 cd ..
 cp ./checkpw-1.01/qmail-popup-auth.patch ./
このqmail-popup-auth.patchをあてるのはPOPユーザ用とAPOPユーザ用で2つ立ち上げるのではなく、1つで両方対応させるためのものです。ちなみにポートを指定する場合は、
 tcpserver 0 110
とします。この0は、サーバを起動するIPアドレス/ホストを特定しなければ、0で、110がポートです。
またSMTP AUTHを使いたい場合は、http://members.elysium.pl/brush/qmail-smtpd-auth/より、qmail-smtpd-auth-0.30.tar.gzをダウンロードして、(31は使わず。理由は下で) Outbound Port25 Blocking をいろいろなISPがはじめたので、もやは必須でしょうか。
 tar zxvf qmail-smtpd-auth-0.30.tar.gz
 cp qmail-smtpd-auth-0.30/base64.* qmail-1.03
 cp qmail-smtpd-auth-0.30/README.auth qmail-1.03
 cp ./qmail-smtpd-auth-0.30/base64.* .  
またhttp://www.sera.desuyo.net/smtp-auth/から「qmail-smtpd-auth で SMTP-AUTH だけ許可するぞパッチ」をダウンロードしました。これが30用みたいなので、31を使ってないです。
ではさらにhttp://www.qmail.org/top.htmlからqmail-dkもダウンロードしておきます。これはsmtp-authを使ってかつSubmissionPort(587)を使って送信専用とした場合、smtp(25)は、DomainKeys認証にしておくことによって、SMTPサーバーからしか受け取らないようにできます。ただし、まだあまり普及していないらしく、試してみたい人はやってみてください。~ 
DomainKeysを使う場合は、http://domainkeys.sourceforge.net/より、
 wget http://nchc.dl.sourceforge.net/sourceforge/domainkeys/libdomainkeys-0.68.tar.gz
 tar xzvf libdomainkeys-0.68.tar.gz 
 cd libdomainkeys-0.68
 make
 gcc -DBIND_8_COMPAT -O2 -o dktest dktest.o -L. -ldomainkeys -lcrypto `cat dns.lib`
 cp libdomainkeys.a ../
 cp *.h ../
 cd ..
 wget http://qmail.org/qmail-1.03-dk-0.53.patch  
 cd qmail-1.03
 patch -p1 < ../qmail-1.03-dk-0.53.patch
とすると
 patching file Makefile
 Hunk #1 succeeded at 812 (offset 4 lines).
 patching file qmail-dk.8
 patching file qmail-dk.c 
と出力されます。qmail-1.03のフォルダでコンパイルすると
 make setup check
qmail-dk,qmail-dk.8ができますので、
 cp qmail-dk /var/qmail/bin/
 cp qmail-dk.8 /var/qmail/man/man8/
 chown qmailq:qmail /var/qmail/bin/qmail-dk
 chmod 4711 /var/qmail/bin/qmail-dk
参考 http://blog.cles.jp/item/1778
またhttp://www.flounder.net/qmail/qmail-dns-patchからDNSのUDPが512バイトをこえると処理ができなくなることのパッチを落としておきます。
SPF用のパッチは、 http://www.saout.de/misc/spf/より
 wget http://www.saout.de/misc/spf/qmail-spf-rc5.patch
だらだらと書いてますが、めんどくさい人はhttp://qmail.org/netqmail/のnetqmail-1.05はいろいろパッチ適応済みらしいです。spfのパッチも当たっているんですね。~
http://shupp.org/より抜粋させていただきました。
 Includes these popular patches:
    * smtp auth
    * tls/ssl
    * spf
    * qmail-queue (to allow for virus scanners)
    * maildir++ patch
    * support oversize dns packets (not necessary if you use dnscache)
    * chkuser (check for local vpopmail users, envelope syntax. requires vpopmail to be previously installed)
    * spam throttle
    * qregex (regular expression matching in badmailfrom and badmailto)
    * big concurrency (set the spawn limit above 255) 
ではqmailのインストールです。
 gunzip -v qmail-date-localtime.patch.gz
 tar zxvf qmail-1.03.tar.gz
 cd qmail-1.03
 patch < ../qmail-date-localtime.patch #<--パッチをあてる
 patch < ../qmail-dns-patch #<--パッチをあてる
 patch < ../qmail-smtpd-relay-reject #<--パッチをあてる
 patch < ../qmail-smtpd-auth-0.30/auth.patch #<--SMTP AUTHのパッチをあてる(認証しなくても送信できてしまうらしいので、以下)
 patch < ../qmail-smtpd-auth-0.30-iwm.patch #<--SMTP AUTHだけ許可パッチをあてる
 patch < ../qmail-popup-auth.patch #<--パッチをあてる APOPの場合 vpopmailの場合はいらない。qmail-smtpd-auth-0.30/base64.* をソースになければコピーしておきます。
 patch < ../qmail-spf-rc5.patch #<--spf対応用のパッチ ただしエラーがでるので、手で修正する。
qmail-smtpd-relay-rejectのパッチを当てている場合、qmail-smtpd.cを開いて、
 int addrrelay()
 {
   int j;
   j = addr.len;
   while(--j >= 0)
     if (addr.s[j] == '@') break;
   if (j < 0) j = addr.len;
   while(--j >= 0) {
     if (addr.s[j] == '@') return 1;
     if (addr.s[j] == '%') return 1;
     if (addr.s[j] == '!') return 1;
     if (addr.s[j] <= 0x20) return 1; <--追加
   }
   return 0;
 }
編集しておいて、
 mkdir /var/qmail
 groupadd qmail
 groupadd nofiles
 useradd -d /var/qmail -g nofiles -s /bin/true qmaild
 useradd -d /var/qmail -g nofiles -s /bin/true qmaill
 useradd -d /var/qmail -g nofiles -s /bin/true qmailp
 useradd -d /var/qmail/alias -g nofiles -s /bin/true alias
 useradd -d /var/qmail -g qmail -s /bin/true qmailq
 useradd -d /var/qmail -g qmail -s /bin/ture qmailr
 useradd -d /var/qmail -g qmail -s /bin/true qmails
 make setup check
エラーがでました。その場合は、error.hを修正します。extern int errno;の下に#include <errno.h>を追加。修正後、再度 make setup check
 ./config-fast test.com   <--サーバのFQDN
ではcontrolファイルを編集します。/var/qmail/control
 defaultdomain  <--ドメイン名が省略された場合、補完されるドメイン名
 locals         <--受信するホスト名・ドメイン名
 rcpthosts      <--受信するホスト名・ドメイン名 バーチャルドメインのときはここに追加されています。
このとき、locals,rcpthostsは複数してすることができます。次にエイリアスの設定を行います。
 cd /var/qmail/alias/
 touch .qmail-postmaster
 touch .qmail-mailer-daemon
 touch .qmail-root
 chmod 644 .qmail*
この中に&admin@mydomain.comと書いておくと、root,postmaster,mailer-daemon宛メールを転送してくれます。~
.qmail-defaultとうのもあります。行き先不明のメールのあて先で、catch-allとして設定できます。~
ではテストをしてみます。解凍したソースの中にhomeというファイルがありますので、/var/qmail/rcにコピーします。次に/var/qmail/rcを開いてMailboxをMaildirに変更します。Maildirの後ろに/は忘れないでください。これでMaildir形式に変更されます。その後ユーザごとにMaildirを作ってやる必要がありますので、ユーザのホームディレクトリで
 /var/qmail/bin/maildirmake ./Maildir/
を実行します。
その後、
 csh /var/qmail/rc &
で起動し、
 echo "douda" | /var/qmail/bin/qmail-inject test@tete.com
とします。test@tete.comは好きなアドレスを指定してください。届いていればOKです。ではkill %1で終わっておきましょう。tcpserverのインストールをやってみます。エラーが出る場合は、errno.hのextern int errno;の下に#include <errno.h>を追加します。
 tar zxvf ucspi-tcp-0.88.tar.gz
 cd ucspi-tcp-0.88
 make setup check
/var/qmail/control/tcp.smtpというファイルを作成して、
 192.168.1.:allow,RELAYCLIENT=""
 127.0.0.1:allow,RELAYCLIENT=""
 :allow
を書き込みます。ちなみにこのあたりの詳細は、[[qmail メールサーバの構築P315>http://www.amazon.co.jp/exec/obidos/ASIN/4756140017/worried-22]]にあります。
 /usr/local/bin/tcprules /var/qmail/control/tcp.smtp.cdb /var/qmail/control/tcp.smtp.tmp < /var/qmail/control/tcp.smtp
POP3サーバもインストールしておきましょう。APOP対応のcheckpwの場合は、すでに上のほうで終わっています。checkpassword-0.90を解凍して、conf-homeファイルに/を/var/qmailに変更して、
 cd checkpassword-0.90
 make setup check
次に起動用のスクリプトです。
 #!/bin/sh
 [ -f /var/qmail/rc ] || exit 0
 PATH=$PATH:/var/qmail/bin:/usr/local/bin
 case "$1" in
    start)
        echo -n "Starting... qmail"
        csh -cf '/var/qmail/rc &'
        /usr/local/bin/tcpserver -v -u 503 -g 505 -x \
  /var/qmail/control/tcp.smtp.cdb 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 \ 
 | /var/qmail/bin/splogger smtpd 3 &  <--cat /etc/passwd |grep qmaildで確認して-u -gの値を設定
        /usr/local/bin/tcpserver 0 pop3 /var/qmail/bin/qmail-popup \
 smtpd.test.jp /var/qmail/bin/checkpassword \ 
 <-smtp.test.comは変更してください。またcheckpwの場合は、/var/qmail/bin/checkpasswordを/bin/selectcheckpwにします。
 /bin/checkpwでPOP、また /bin/checkapoppwでAPOPのみです。
 /var/qmail/bin/qmail-pop3d Maildir &
        touch /var/lock/qmail
        ;;
    stop)
        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
        rm -f /var/lock/qmail
        ;;
    *)
        echo "Usage: "$0" {start|stop}"
        exit 1
 esac
 exit 0
ついでにdaemontoolsも入れておきましょう。システムトラブルがあって止まった場合でも自動的に再起動してくれるといったすぐれもんです。
http://cr.yp.to/daemontools/install.htmlより~
参考
http://www.emaillab.org/djb/daemontools/daemontools-howto.html~
http://www.unixuser.org/~euske/doc/daemontools/myfaq/faq-3.html~

 wget http://tools.qmail.jp/daemontools/daemontools-0.76.tar.gz
 tar zxvf daemontools-0.76.tar.gz
 cd admin/daemontools-0.76
 ./package/install
またエラーや。お約束のerror.hのextern int errno;の下に#include <errno.h>を追加です。
すると/commandにファイルが作成されているのですが、これはすべて展開したディレクトリにあるファイルのシンボリックリンクですので、気をつけましょう。/etc/inittabの最終行に
 SV:123456:respawn:/command/svscanboot
という行が追加されてます。
ではログ管理ユーザを追加します。
 useradd -g qmail -d /var/qmail -s /bin/false qmaillog
 useradd -g qmail -d /var/qmail -s /bin/false smtplog
 useradd -g qmail -d /var/qmail -s /bin/false pop3log
では自動起動するための設定用ディレクトリを作成します。
 mkdir /var/qmail/services      <---設定関係のディレクトリ
 mkdir /var/qmail/services/qmail   <---qmail用
 chmod +t /var/qmail/services/qmail
 mkdir /var/qmail/services/qmail/log <---log用
 chown qmaillog:qmail /var/qmail/services/qmail/log
ここでログをとるためにスティッキービットがたっている必要があるので、設定しています。またdaemontoolsは/serviceの中にあるrunという名前のファイルです。
では/var/qmail/services/qmailにrunという名前のファイルを作ります。
 #!/bin/sh
 exec env - PATH="/var/qmail/bin:$PATH" qmail-start ./Maildir/ splogger qmail
次に/var/qmail/services/qmail/log/runは
 #!/bin/sh
 exec /usr/bin/env - PATH="/usr/local/bin" setuidgid qmaillog multilog t ./main
では権限を変更しておきましょう。
 chown qmaillog:qmail /var/qmail/services/qmail/run
 chmod 700 /var/qmail/services/qmail/run
 chown qmaillog:qmail /var/qmail/services/qmail/log/run
 chmod 700 /var/qmail/services/qmail/log/run
次は/serviceにシンボリックリンクを張って起動してみます。
 ln -s /var/qmail/services/qmail/ /service/qmail
 ps aux | grep qmail
立ち上がっていれば成功です。次はsmtpです。
 mkdir /var/qmail/services/smtpd   <---smtpd用
 chmod +t /var/qmail/services/smtpd
 mkdir /var/qmail/services/smtpd/log <---log用
 chown smtplog:qmail /var/qmail/services/smtpd/log
次に/var/qmail/services/smtpd/runは
 #!/bin/sh
 exec /usr/local/bin/tcpserver -v -u 503 -g 505 -x /var/qmail/control/tcp.smtp.cdb 0 smtp /var/qmail/bin/qmail-smtpd 2>&1
保存後はちょっと/var/qmail/bin/qmail-smtpdで問題があるらしいので、修正します。リソースを使い切ってしまうらしいのです。~
参考:http://www.monyo.com/technical/unix/solaris/qmail/column_1.html
 mv qmail-smtpd qmail-smtpd2
 touch qmail-smtpd
 chown root qmail-smtpd
 chgrp qmail qmail-smtpd
 chmod 755 qmail-smtpd
qmail-smtpdの内容
 #!/bin/sh
 ulimit -d 1024
 exec /var/qmail/bin/qmail-smtpd2 ${1+"$@"}
次はsmtp用のログです。/var/qmail/services/smtpd/log/runを作成します。
 #!/bin/sh
 exec /usr/bin/env - PATH="/usr/local/bin" setuidgid smtplog multilog t ./main
では所有権を変更しましょう。
 chown smtplog:qmail /var/qmail/services/smtpd/run
 chmod 700 /var/qmail/services/smtpd/run
 chown smtplog:qmail /var/qmail/services/smtpd/log/run
 chmod 700 /var/qmail/services/smtpd/log/run
次は/serviceにシンボリックリンクを張って起動してみます。
 ln -s /var/qmail/services/smtpd/ /service/smtpd
 ps aux | grep qmail
立ち上がっていれば成功です。次はpopです。
 mkdir /var/qmail/services/pop3
 chmod +t /var/qmail/services/pop3
 mkdir /var/qmail/services/pop3/log  
 chown pop3log:qmail /var/qmail/services/pop3/log
次に/var/qmail/services/pop3/runは
 #!/bin/sh
 exec /usr/local/bin/tcpserver 0 pop3 /var/qmail/bin/qmail-popup \
 smtp.test.com /var/qmail/bin/checkpassword \  <-smtp.test.comは変更してください。またcheckpwのときは/bin/selectcheckpwです。
 /var/qmail/bin/qmail-pop3d Maildir 2>&1
次はpop用のログです。/varqmail/services/pop3/log/runを作成します。
 #!/bin/sh
 exec /usr/bin/env - PATH="/usr/local/bin" setuidgid pop3log multilog t ./main
では所有権を変更しましょう。
 chown pop3log:qmail /var/qmail/services/pop3/run
 chmod 700 /var/qmail/services/pop3/run
 chown pop3log:qmail /var/qmail/services/pop3/log/run
 chmod 700 /var/qmail/services/pop3/log/run
次は/serviceにシンボリックリンクを張って起動してみます。
 ln -s /var/qmail/services/pop3/ /service/pop3
なぜか一度
 svc: warning: unable to control
といって怒られたことがあります。このときはリブートしたら起動しました。
ではnetstat -taで確認します。またsvstat /service/qmailとかでも確認できるのでみておいてください。設定が間違っているときは0か1secondsになっていますので、設定を見直しましょう。
 svstat /service/qmail
 svstat /service/qmail/log
 svstat /service/smtpd
 svstat /service/smtpd/log
 svstat /service/pop3
 svstat /service/pop3/log
もしくは
 svstat /service/*
この場合は、さらに下の階層は確認できません。
ここで私の場合は、最初logはすべて0でした。どうも/command/multilogのシンボリックリンクの元の場所がわるかったようです。ですので、すべて実体を/commandに移動しました。 
止める場合は、
 svc -d /service/qmail
 svc -d /service/qmail/log
 svc -d /service/smtpd
 svc -d /service/smtpd/log
 svc -d /service/pop3
 svc -d /service/pop3/log
サービスの開始は
 svc -u /service/qmail
 svc -u /service/qmail/log
 svc -u /service/smtpd
 svc -u /service/smtpd/log
 svc -u /service/pop3
 svc -u /service/pop3/log
めんどくさい場合は、svc -u /service/* 設定ファイルを変更した場合は
 svc -h /service/qmail
です。
では早速送信してみましょう。
 telnet localhost 25
 HELO ドメイン名
 MAIL FROM: 送信者のメールアドレス
 RCPT TO: 受信者のメールアドレス
 DATA
 Subject:test
 honnbun <--本文
 . <-終わり
 quit
POPの場合は、
 telnet localhost 110
 USER test
 PASS test
 STAT <--何通届いているかをみます。
 LIST <--一覧を見る
 RETR 1 <--内容をみる
 TOP 1 100 <--100行のみ見る
 quit
参考:[[POP3(Post Office Protocol version 3)>http://www.atmarkit.co.jp/fnetwork/rensai/netpro07/netpro01.html]]~
ここで-ERR authorization failed とかエラーが出る場合は、APOPの可能性があります。では、ホームディレクトリで、
 /var/qmail/bin/maildirmake Maildir
とし、
 cd Maildir
 echo "hogepass" >  .password
 chmod 600 .password
でパスワードファイルを作っておきましょう。
動くの確認できましたら、/var/qmail/services/smtpd/runを変更します。不正中継を許さないようにするためです。
 #!/bin/sh
 QMAILDUID=`id -u qmaild`
 NOFILESGID=`id -g qmaild`
 exec /usr/local/bin/tcpserver -R -H -v -u "$QMAILDUID" -g "$NOFILESGID" \
 -x /home/vpopmail/etc/tcp.smtp.cdb 0 smtp rblsmtpd -r relays.ordb.org \
 -r bl.spamcop.net /var/qmail/bin/qmail-smtpd 2>&1
tcpserverの引数で、-l0 (エルゼロ)を指定するとローカルホストの検索をしないので、遅い場合は試してみましょう。
最近めっきり送信が遅くなったので、調べてましたら、relays.ordb.orgが止まっているではないカー

http://itpro.nikkeibp.co.jp/article/NEWS/20061219/257299/?ST=virus
送信が遅いときには-Rや-Hとかよく見かけますが、まさかordbがサービスを停止していたとは思いもよらなかったです。~
[[SpamAssasinとClamAVとqmail-scanner >http://www.momo-i.org/?SpamAssasin%E3%81%A8ClamAV%E3%81%A8qmail-scanner]]~
** netqmail
 #netqmailインストール
 wget http://qmail.org/netqmail-1.05.tar.gz
 tar xvzf netqmail-1.05.tar.gz
 cd netqmail-1.05/other-patches
 wget http://www.alib.jp/files/qmail-date-localtime.patch
 wget http://www.qmail.org/qmailqueue-patch
 cd ..
 ./collate.sh
 cd netqmail-1.05
 patch -p1 < ../other-patches/qmail-date-localtime.patch
 mkdir /var/qmail
 groupadd qmail
 groupadd nofiles
 useradd -d /var/qmail -g nofiles -s /bin/true qmaild
 useradd -d /var/qmail -g nofiles -s /bin/true qmaill
 useradd -d /var/qmail -g nofiles -s /bin/true qmailp
 useradd -d /var/qmail/alias -g nofiles -s /bin/true alias
 useradd -d /var/qmail -g qmail -s /bin/true qmailq
 useradd -d /var/qmail -g qmail -s /bin/ture qmailr
 useradd -d /var/qmail -g qmail -s /bin/true qmails
 make setup check
 cp home /var/qmail/rc
 ./config-fast hoge.com
 vi /var/qmail/control/tcp.smtp #編集
  192.168.1.:allow,RELAYCLIENT=""
  127.0.0.1:allow,RELAYCLIENT=""
  :allow
 /usr/local/bin/tcprules /var/qmail/control/tcp.smtp.cdb /var/qmail/control/tcp.smtp.tmp < /var/qmail/control/tcp.smtp

 #tcpserverインストール
 wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
 tar xzvf ucspi-tcp-0.88.tar.gz
 cd ucspi-tcp-0.88
 patch -p1 < ../netqmail-1.05/other-patches/ucspi-tcp-0.88.errno.patch
 patch -p1 < ../netqmail-1.05/other-patches/ucspi-tcp-0.88.a_record.patch
 patch -p1 < ../netqmail-1.05/other-patches/ucspi-tcp-0.88.nodefaultrbl.patch
 make
 make setup check
 
 #vpopインストール
 http://downloads.sourceforge.net/vpopmail/vpopmail-5.4.17.tar.gz?modtime=1152720482&big_mirror=0
 tar xzvf vpopmail-5.4.17.tar.gz
 cd vpopmail-5.4.17
 #vchkpw.cのソースを直す
 # hmac_md5( challenge, strlen(challenge), password, strlen(password), digest); を hmac_md5( response, strlen(response), password, strlen(password), digest);
 # return(strcmp(digascii,response)); を return(strcmp(digascii,challenge));
 groupadd -g 1089 vchkpw
 useradd -g vchkpw -u 1089 vpopmail
 mkdir /home/vpopmail
 chown vpopmail:vchkpw /home/vpopmail
 mkdir /home/vpopmail/etc
 vi /home/vpopmail/etc/tcp.smtp #編集
  127.:allow,RELAYCLIENT=""
  192.168.1.:allow,RELAYCLIENT=""
  :allow
 chown -R vpopmail:vchkpw /home/vpopmail/etc
 ./configure --enable-roaming-users=y --enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp --enable-relay-clear-minutes=30 --enable-logging=y
 make
 make install-strip
 
** vpopmail
vpopmailを使って、複数ドメインに対応してましょう。またAPOPにも対応しております。http://www.inter7.com/index.php?page=vpopmailよりダウンロードして、とりあえず解凍します。http://www.inter7.com/vpopmail/vpopmail.htmlをよく読んでおきましょう。
 cd /usr/local/src
 tar xzvf vpopmail-5.4.8.tar.tar
グループとユーザを追加します。
 groupadd -g 1089 vchkpw
 useradd -g vchkpw -u 1089 vpopmail
ではコンパイルしましょう。POPBeforeSMTPで10分としてます。POPBeforeSMTPとは、メールを送信する前にいったん受信して、承認が受けれれば送信できるので、不正な送信ができなくなります。
 ./configure --enable-roaming-users=y --enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp --enable-relay-clear-minutes=30 --enable-logging=y
enable-roaming-usersはPOPbeforeSMTPを有効にします。
enable-relay-clear-minutesはPOPbeforeSMTPでリレーを許可する時間です。
 make
 make install-strip
tcp.smtpがないとおこられる場合は、あとで作ってください。内容は、
 127.:allow,RELAYCLIENT=""
 192.168.1.:allow,RELAYCLIENT=""
 :allow
です。/home/vpopmail/doc/doc_html/vpopmail.htmlを一読しておきましょう。/home/vpopmailを確認してください。また
 tcprules /home/vpopmail/etc/tcp.smtp.cdb /home/vpopmail/etc/tcp.smtp.tmp < /home/vpopmail/etc/tcp.smtp
 chown vpopmail:vchkpw  /home/vpopmail/etc/tcp.smtp.cdb
tcprulesでtcpserver が高速アクセスできるようなバイナリ形式でcdbに書き出しときます。参考:http://www.emaillab.org/djb/tools/ucspi-tcp/tcprules.html~
では早速仮想ドメインを追加するコマンドがありますので、実行します。
 /home/vpopmail/bin/vadddomain hidekazu.dhs1.sst.ne.jp
削除は
 /home/vpopmail/bin/vdeldomain hidekazu.dhs1.sst.ne.jp
ちなみにユーザの追加は
 /home/vpopmail/bin/vadduser hoge@hidekazu.dhs1.sst.ne.jp
削除は
 /home/vpopmail/bin/vdeluser hoge@hidekazu.dhs1.sst.ne.jp
実行後/home/vpopmail/domains/に移動して追加したドメインのディレクトリができいているかどうか確認してみましょう。できておれば、/var/qmail/services/pop3にいってrunを編集します。
 #!/bin/sh
 exec env - PATH="/var/qmail/bin:$PATH" /usr/local/bin/tcpserver \ 
 -R -H -l0 -v 0 pop3 /var/qmail/bin/qmail-popup \ 
 test.com /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1
また/var/qmail/services/smtpd/runも修正します。
 #!/bin/sh
 QMAILDUID=`id -u qmaild`
 NOFILESGID=`id -g qmaild`
 exec /usr/local/bin/tcpserver -R -H -v -u "$QMAILDUID" -g "$NOFILESGID" \
 -x /home/vpopmail/etc/tcp.smtp.cdb 0 smtp /var/qmail/bin/qmail-smtpd 2>&1
これで
 telnet localhost 25
としてたとき/var/log/messagesに
 tcpserver: warning: dropping connection, unable to read /home/vpopmail/etc/tcp.smtp.cdb: access denied
と表示されている場合は、
 chmod 755 /home/vpopmail
またオプションの-R -Hは指定してください。送受信が遅いと感じたときにはこの指定がない場合があります。
参考:http://tools.qmail.jp/tcpserver.html~
http://www.emaillab.org/djb/tools/ucspi-tcp/tcpserver.html~
http://www.asahi-net.or.jp/~wv7y-kmr/memo/tcpserver.html~
ちなみに-Rは、identプロトコルで接続元ホスト情報を取得しないのですが、このidentプロトコルとは最初に クライアントがサーバに接続し、次にサーバが IDENT を使用してクライアント に接続し直し、クライアントが誰であるかを確認するらしいです。~
ただし逆引きできないホストからのメールを遮断したい場合は、-H(リモートホスト名を調べない)をとって、-p(パラノイドモード:接続元ホスト名を調査してそのIPアドレスが接続元IPアドレスと一致するかどうか調べる)は好みでつけてます。その後、/var/qmail/bin/qmail-smtpdの前に-b -cもつけて
 =:allow
 :allow,RBLSMTPD="Access denied. bad reverse DNS"
qmail-scannerを使っている場合は、
 =:allow,QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
 :allow,RBLSMTPD="Access denied. bad reverse DNS"
とするらしいのですが、まだ調査中です。~
ではメールアカウントを追加します。
 /home/vpopmail/bin/vadduser test@goodservice.jp test2
test2がパスワードになります。削除は
 /home/vpopmail/bin/vdeluser test@goodservice.jp
パスワード変更は、
 /home/vpopmail/bin/vpasswd test@goodservice.jp
POPBeforeSMTPのごみは削除しておきます。
 crontab -e
 30 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null
一度/home/vpopmail/bin/clearopensmtpを実行しておきましょう。open-smtpのファイルに接続してきたユーザのIPが入っているはずなので、確認してみてください。
ログはチェックしましょう。
 tail -f /var/log/maillog
移行する場合は、
 /var/qmail/control/locals
 /var/qmail/control/rcpthosts
 /var/qmail/control/virtualdomains
 /var/qmail/users/assign
 /var/qmail/users/cdb
あたりのファイルを持ってきます~
さてsmtp-authにするにはどうすればいいでしょうか?/var/qmail/services/smtpd/runを修正します。
 exec /usr/local/bin/tcpserver -R -H -v -u "$QMAILDUID" -g "$NOFILESGID" -x /home/vpopmail/etc/tcp.smtp.cdb 0 smtp \
 /var/qmail/bin/qmail-smtpd hogehostname /home/vpopmail/bin/vchkpw /bin/true 2>&1
スパムメールの拒否する場合は、
 exec /usr/local/bin/tcpserver -R -H -v -u "$QMAILDUID" -g "$NOFILESGID" -x /home/vpopmail /etc/tcp.smtp.cdb 0 smtp
 rblsmtpd -r relays.ordb.org -r bl.spamcop.net /var/qmail/bin/qmail-smtpd hogehostname /home/vpopmail/bin/vchkpw /bin/true 2>&1
またvchkpwの権限を変更しておきます。
 chown root:root ~vpopmail/bin/vchkpw
 chmod 4755 ~vpopmail/bin/vchkpw
では、qmailを再起動して、メーラから送信して、/var/log/maillogを見ると
 vchkpw-smtp: password fail
 vchkpw-smtp: (PLAIN) login success
なんだ?このvchkpw-smtp: password failは?http://www.marronkun.net/linux/mail/qmail_8.htmlを参考にさせていただきながら、
vpopmail(5.4.10)のvchkpw.cの706行目あたりを
 hmac_md5( challenge, strlen(challenge), password, strlen(password), digest); 
から
 hmac_md5( response, strlen(response), password, strlen(password), digest);
へ、また723行目あたりを
 return(strcmp(digascii,response));
から
 return(strcmp(digascii,challenge));
に変更して、メールを送信すると
 vchkpw-smtp: (CRAM-MD5) login success
と出力されるようになりました。とりあえず、メーラはOutLookExpress6(こいつのログはvchkpw-smtp: (PLAIN) login successとなっている),Becky! Ver.2,ThunderBirdで確認しました。つぎにSubmissionPortに対応させます。
 exec /usr/local/bin/tcpserver -R -H -v -u "$QMAILDUID" -g "$NOFILESGID" -x /home/vpopmail /etc/tcp.smtp.cdb 0 smtp
 rblsmtpd -r relays.ordb.org -r bl.spamcop.net /var/qmail/bin/qmail-smtpd hogehostname /home/vpopmail/bin/vchkpw /bin/true 2>&1
のsmtpを587にしておきます。これで送り側はSubmissionPortでsmtpAuthになりましたが、smtp(25)で受けていないので、送信はできるが受信ができない状態になってます。しょうがないので、/var/qmailを/var/qmail25でコピーして、そちらで
 /var/qmail25/services/smtpd/run
を動かしました。またcontrolディレクトを2つ管理するのも面倒なので、シンボリックリンクをはってます。ではsmtp(25)のDomainKeysの設定ですが、また今度~
一度
 vchkpw-submission: vpopmail user not found
このエラーが出たことがあります。
 chmod u+s vchkpw
をすればいけたのですが、以前はセットアップしたやつはこんなエラーでなかったんですが、どこかで間違えたか?
***リンク
http://www.maid.ne.jp/~yy/freebsd/qmail.html~
http://members.elysium.pl/brush/qmail-smtpd-auth/~
http://www.sera.desuyo.net/smtp-auth/~ SMTP-AUTH だけ許可するぞパッチ~
[[★FCとも(゚∀゚)の会 qmailとvpopmailでsubmission(サブミッションポート)SMTP-AUTHをやってみる>http://sbol.mtechnic.jp/modules/pukiwiki/190.html]]~
[[BSDあれこれ ●qmailな環境にOutbound Port 25 Blocking対策>http://macmini.no.land.to/2006/09/qmailoutbound_port_25_blocking.html]]~
[[ninnin.net blog qmail + vpopmailな環境でサブミッションポートからの送信を行う>http://www.ninnin.net/blog/archives/cat_linux.html]]~
[[@IT qmailでsubmissionポートの設定>http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=31848&forum=10&7]]~
** メッセージ
 4番台:一時的エラー
 Deferral(421)	指定ドメインのSMTPサービスが動作不能のためコネクションを切断
 Deferral(450)	メールボックス利用不可のため失敗
 Deferral(451)	ローカルサーバエラーのため、コマンドの実行に失敗
 Deferral(452)	容量不足のため、リクエストされたメールの受信に失敗
 5番台:エラー
 Failure(501)	宛先が不正
 Failure(511)	宛先メールボックスがない
 Failure(550)	メールボックスが有効でない、ユーザが存在していない
 Failure(551)	宛先が拒否
 Failure(553)	PTRレコードが不正
 Failure(554)	送信者が拒否、メールボックスが有効でない
** ssl化
465(smtps),995(pop3s)です。http://www.nrg4u.com/よりhttp://www.nrg4u.com/qmail/ucspi-tcp-ssl-20050405.patch.gzをダウンロードさせていただきました。では、ucspi-tcpにパッチをあてます。ucspi-tcpを解凍したディレクトリで、
 zcat ucspi-tcp-ssl-20050405.patch.gz | patch
 make
 cp tcpserver /usr/local/bin/tcpserverssl
では
 PEM1=/tmp/openssl.`date +%s`.$$.1
 PEM2=/tmp/openssl.`date +%s`.$$.2
 openssl req -newkey rsa:1024 -keyout $PEM1 -nodes -x509 -days 365 -out $PEM2
 cat $PEM1 >  cert.pem
 echo ""   >> cert.pem
 cat $PEM2 >> cert.pem
 rm -f $PEM1 $PEM2
 chmod 600 cert.pem
でcert.pemを作ります。make certでもいいそうです。http://www.kawaz.jp/pukiwiki/?POP%A4%C8SMTP%A4%F2SSL%B2%BD%A4%B9%A4%EBを大変参考にさせていただきました。では、/var/qmail/services/smtpd/runを修正します。tcpserverをtcpserversslに、-nでcert.pemを指定して、-sを追加して、
 exec env - PATH="/var/qmail/bin:$PATH"  /usr/local/bin/softlimit -m 15000000 /usr/local 
 /bin/tcpserverssl -R -H -v -s -u "$QMAILDUID" -g "$NOFILESGID" -x /home/vpopmail/etc/tcp.smtp.cdb -n /var/qmail/cert.pem 
 0 465 rblsmtpd -r relays.ordb.org -r bl.spamcop.net /var/qmail/bin/qmail-smtpd 2>&1

** セカンダリ
/var/qmail/control/smtproutesに
 hoge.jp:hogehoge.hoge.jp
とするとhoge.jp宛てのメッセージをhogehoge.hoge.jpに転送します。
 :hogehoge.hoge.jp
とするとすべてhogehoge.hoge.jpに転送しますが、localsとvirtualdomainsにそのドメインの設定があれば、そちらを優先しますので、確認しておきましょう。

http://www.toshikazu.org/archives/000080.html
** qmail-vida
http://qmail-vida.sourceforge.jp/からダウンロードします。SMTP認証ができバーチャルドメインと仮想ユーザにも対応しています。vpopmailをつかっていればいりません。ではユーザを作りましょう
 groupadd vida
 useradd -g vida pop
 useradd -g vida -s /bin/false authdb
 useradd -g vida -s /bin/false qmailu
次にパッチをあてます。この場合、他のソースにはpatchを当てていない状態にしておいてください。
 make patch
 make copy
ではqmail,checkpassword,tcpserverをインストールします。
その後は、qmail-vida-0.53/src/vidaで
 make
 make setup check
終了後、authdbディレクトリを作成します。
 /var/qmail/bin/vida-pwdbinit
***リンク
http://qmail-vida.sourceforge.jp/~
http://www.stackasterisk.jp/tech/systemConstruction/qmail02_01.jsp~
http://omori.asama.net/qmail.html~
http://www.asahi-net.or.jp/~aa4t-nngk/qmail7.html~

**QVAdmin
qmail + qmail-vidaの環境のアカウント設定ツールだそうです。
http://software.my-highway.net/cgi/pukiwiki/pukiwiki.php?QVAdmin~
う~んダウンロードできん...
** チェック
メールサーバを構築したら、必ずチェックしておきましょう。
-http://www.rbl.jp/svcheck.php~
第三者中継の可能性をチェックしれくれます。
-http://www.rbl.jp/ckdb/~
ブラックリストに登録されているかどうかを調べます。
-http://www.abuse.net/relay.html~
-http://www.nanet.co.jp/rlytest/relaytest.html~
ページがなくなっちゃいました。
-http://ordb.org/~
ページがなくなっちゃいました。
** queue-fix
/var/log/maillogに
 warning: trouble opening remote
といったエラーが出力されている場合は、queueがおかしくなっている可能性があります。http://www.netmeridian.com/e-huss/queue-fix.tar.gzからqueue-fixをダウンロードしましょう。その後解凍して、makeします。エラーが出る場合は、error.hに#include <errno.h>です。qmailを停止して、そのディレクトリで
 ./queue-fix -i /var/qmail/queue
細かいことはREADMEを読みました。余談ですが、[[本格翻訳 4 Super>http://www.amazon.co.jp/exec/obidos/ASIN/B0006JEEJ8/worried-22]]で翻訳したのですが、いがいと翻訳できておりました。

** Qmail-Scanner
メールを送受信する際にメールのウィルスをチェックしてくれるプログラムです。まず
 perl -e 'use DB_File;'
として、エラーが出る場合は、http://www.cpan.org/modules/by-module/TimeからTime-HiRes-1.65.tar.gzをダウンロードします。(1.72がありました。8/6)
 perl  Makefile.PL
 make
 make install
またhttp://www.cpan.org/modules/by-module/DB_File/からDB_File-1.810.tar.gzをダウンロードします。
 perl  Makefile.PL
 make
 make install
reformineをインストールします。これは振り分けを行います。ではhttp://prdownloads.sourceforge.net/courier/からmaildrop-1.7.0.tar.bz2をダウンロードしました。(2007/4/24 2.0.4)
 bzip2 -d maildrop-1.8.1.tar.bz2
 tar xvf maildrop-1.8.1.tar
 cd maildrop-1.8.1
 ./configure
2.0.4の場合エラーがでました。configure: error: pcre.h not found - install PCRE from www.pcre.org~
ではhttp://www.pcre.org/より
 wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.0.tar.gz
 tar xzvf pcre-7.0.tar.gz
 ./configure
 make
 make install
ではつづき
 make 
 make install
 cp ./rfc2045/reformime /usr/local/bin #インストールされているかも
maildropはhttp://www.softclub.co.jp/~zoro/woody/courier/maildrop.htmlや、http://www.is.titech.ac.jp/~yanagis0/text/maildrop.htmlを参考にしてみてください。
次に、TNEFをインストールします。これはms-tnef形式のメッセージをデコードするためのプログラムです。http://sourceforge.net/projects/tnefからTNEF v1.2.3.1をダウンロードしました。(2007/4/24 1.4.3)展開後、
 ./configure
 make install
次はhttp://www.clamav.net/からclamav-0.85.tar.gzをダウンロードします。(0.91 07/7/13)GPLライセンスに従って利用することができるオープンソースのソフトウェアのアンチウィルスソフトです。
 groupadd clamav
 useradd -g clamav -s /bin/true clamav
 ./configure
 make
 make install
uninstallする場合は、
 make uninstall

updateの場合は、
 /etc/init.d/clamd restart
contrib/init/RedHatにclamdがありますので、これを
/etc/init.dにコピーして、
 chkconfig --add clamd
ブート時に立ち上げるようにしておきます。clamdのオプションは{start|stop|status|reload|restart|condrestart}です。
またupdateの場合は、こちらを参照しましょう。http://wiki.clamav.net/index.php/UpgradeInstructions~
clamd socket nameは以前は/tmp/clamdでしたが、0.91から/tmp/clamd.socketに変わりました。

clamav-0.83以上はzlibのバージョンが1.2.1以下だと怒られるので、1.2.2以上にあげておきましょう。clamd -Vでバージョンを確認しておkます。
/usr/local/etc/freshclam.confを開いて
-expampleを#expampleに
-DatabaseMirror db.jp.clamav.netを追加
-LogSyslogの#をとる

次はclamdの設定です。/usr/local/etc/clamd.confを開いて、
-expampleを#expampleに
-LogSyslogの#をとる
-User clamav の#をとってclamavをqscandに(Qmail-Scannerdで使う時)
-ScanArchiveの#をとる 圧縮ファイルも対象
-Debugは、 動作確認が終われば、#に
-ArchiveMaxFileSizeの#をとって10Mぐらいに。これ以上のファイルは走査しない。 0.93では違うんで注意!
-ArchiveMaxRecursionの#をとって10ぐらいに。 何多重までので圧縮をみるか 0.93では違うんで注意!
-ArchiveMaxFilesの#をとって1000ぐらいに。最大何ファイルまで走査するか。 0.93では違うんで注意!
-FixStaleSocketの#をとってyesに clamdが強制終了した場合の再起動不可になるのを防ぐ

http://clamav-jp.sourceforge.jp/jdoc/clamav.html

0.90にアップデートすると、
 clamdを起動中: ERROR: Parse error at line 43: Option LogSyslog requires boolean argument.
 ERROR: Can't open/parse the config file /usr/local/etc/clamd.conf
http://wiki.clamav.net/Main/UpgradeInstructionsを参考します。とりあえず、あまりclamd.confとfreshclam.confを変更していなかったので、
 mv /usr/local/etc/freshclam.conf /usr/local/etc/freshclam.conf8
 mv /usr/local/etc/clamd.conf /usr/local/etc/clamd.conf8
として移動してやった後、make installしました。その後でconfを同様に修正してます。
0.90.1にアップデートすると
 clamdscan: corrupt or unknown clamd scanner error or memory/resource/perms problem - exit status 32512/127
と出てきました。んー READMEを読むと
 ** Important note **: please run 'ldconfig' after installing this version.
なんてことだ。READMEを読むのは基本なのに、ついつい忘れていた.. ということで、
 ldconfig
変更後、
 /usr/local/bin/freshclam -v 
でアップデートしておきます。またアップデートログ用のファイルを作成しておきます。
0.93にアップデートしてみました。おっとエラーがでたぞ?
 clamd を起動中: ERROR: Parse error at line 285: Unknown option ArchiveMaxRecursion.
 ERROR: Can't open/parse the config file /usr/local/etc/clamd.conf
 clamd を起動中: ERROR: Parse error at line 290: Unknown option ArchiveMaxFiles.
 ERROR: Can't open/parse the config file /usr/local/etc/clamd.conf
 clamd を起動中: ERROR: Parse error at line 290: Unknown option ArchiveMaxFiles.
 ERROR: Can't open/parse the config file /usr/local/etc/clamd.conf
READMEにも書いてありましたが変更されれてるので、書き換えるか、コメントに。
 clamd を起動中: LibClamAV Error: cli_loaddb(): No supported database files found in /usr/local/share/clamav
 ERROR: Not supported data format
dbを入れ変えるのを忘れてた。
 /usr/local/bin/freshclam --quiet -l /var/log/clam-update.log
これで起動しました。~
2004年5月27日の時点で約21,694種類のウイルスに対応しています。今どのくらいだろ。
さて続きです。
 touch /var/log/clam-update.log
 chmod 600 /var/log/clam-update.log
 chown clamav /var/log/clam-update.log
としてやり、
 /usr/local/bin/freshclam --quiet -l /var/log/clam-update.log
をcronに登録しておきます。
 0 * * * *  /usr/local/bin/freshclam --quiet -l /var/log/clam-update.log
これで1時間ごとにアップデイトされます。

http://www.eicar.org/anti_virus_test_file.htmからテスト用にウィルスをダウンロードしてテストしてみましょう。また
 clamscan --infected --remove --recursive パス
でチェックできます。
このユーザはQmail-Scannerをインストールするときにつくるユーザです。
あとqmailにパッチをあてておきましょう。http://www.qmail.org/qmailqueue-patch~
当てようとしましたら、
 Reversed (or previously applied) patch detected!
と出力された場合は、netqmailですでにパッチが当たっているからです。
当てたらコンパイルです。make setup checkだけでOKです。./config-fastはしないです。
ではQmail-Scannerのインストールを行います。http://prdownloads.sourceforge.net/qmail-scannerからqmail-scanner-1.24.gzをダウンロードします。(2006/4/24 2.01)展開後、
 groupadd qscand 
またhttp://www.asahi-net.or.jp/~aa4t-nngk/qmail6.htmlを参考にさせていただいて(大変丁寧に解説していただいてます)、
 tar xzvf qmail-scanner-1.25.tgz
 cd qmail-scanner-1.25
 patch -p1 < ../qmail-scanner-1.25_jp_lsndr.patch
 useradd -c "Qmail-Scanner Account" -g qscand -s /bin/false qscand
 ./configure --lang ja_JP.EUC  --redundant yes --notify recips,lsndr,nmladm --scanners clamdscan --install
参考http://qmail-scanner.sourceforge.net/configure-options.php~
うっ、langでエラーが.. しょうがないので、
 cd locale
 cp -a ja_JP.EUC ja_JP.eucJP
ではもう一度。おっまたエラーだ。
 BEGIN failed--compilation aborted at /var/qmail/bin/qmail-scanner-queue.pl line 283.
Jcodeか....[[CPAN]]を参考にいれましょう....
このnotifyは感染通知をだれに送信するかです。none,sender,recips,admin,mnladm,allがあります。senderはどうせ詐称しているアドレスなので、はずしました。
そのあとで、
 setuidgid qmaild /var/qmail/bin/qmail-scanner-queue.pl -g
で動く確かめます。だめな場合は、perl-suidperlがインストールされていない可能性がありますので、
 which suidperl
としてない場合は、http://rpmfind.net/linux/RPM/からでもインストールしておきましょう。いれたのにもかかわらず、
 /usr/bin/perl: symbol lookup error: /usr/bin/perl: undefined symbol: PL_block_type
と出た場合は、たぶんバージョンがひくいかもしれません。yumとか使ってupdateしておきましょう。
 yum install perl-suidperl
 yum update perl-suidperl
また/var/qmail/bin/qmail-scanner-queue.plをエディタでひらいて、
 my $qmailinject = '/var/qmail/bin/qmail-inject';
を
 my $qmailinject = '/usr/bin/nkf -j |/var/qmail/bin/qmail-inject';
に変更して文字化けに対応しておきます。また他のオプションで
 my $DEBUG='1';
となってますが、qmail-queue.logがどんどん大きくなるので、0にしておきましょう。
次に/var/spool/qmailscan/quarantine-attachments.txtを開いて、最後の方にある、
 .vbs    0       VBS files not allowed per Company security policy
とかのコメントをとっておきます。
また適当に追加しておきましょう。
 .lnk    0       LNK files not allowed per Company security policy
 .scr    0       SCR files not allowed per Company security policy
 .wsh    0       WSH files not allowed per Company security policy
 .hta    0       HTA files not allowed per Company security policy
 .pif    0       PIF files not allowed per Company security policy
 .cpl    0       CPL files not allowed per Company security policy
 .exe    0       EXE files not allowed per Company security policy
 .cmd    0       CMD files not allowed per Company security policy
 .dll    0       DLL files not allowed per Company security policy
 .js     0       JS files not allowed per Company security policy
 .reg    0       reg files not allowed per Company security policy
 .wsf    0       WSF files not allowed per Company security policy
 .wsc    0       WSC files not allowed per Company security policy
 .bat    0       BAT files not allowed per Company security policy
 .mdb    0       MDB files not allowed per Company security policy
この0の両端はタブです。追加したら、以下のコマンドを実行です。databaseを再構築です。
 setuidgid qmaild /var/qmail/bin/qmail-scanner-queue.pl -g
また/var/spool/qmailscan/quarantine/にウィルスメールがたまってきますので、
 find /var/spool/qmailscan/quarantine/ -type f -mtime +10 -exec rm -f '{}' ';'
でcronで消しておきましょう。
次はsmtpの起動スクリプトを修正します。/var/qmail/services/smtpdの先頭にでも、
 QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
 export QMAILQUEUE
を付け加え、
 exec /usr/local/bin/softlimit -m 15000000 /usr/local/bin/tcpserver \ 
 -R -H -v -u "$QMAILDUID" -g "$NOFILESGID" -x \ 
 /home/vpopmail/etc/tcp.smtp.cdb 0 smtp /var/qmail/bin/qmail-smtpd 2>&1
に修正します。参考:softlimithttp://www.emaillab.org/djb/tools/daemontools/softlimit.html~
ではqmailを起動してみます。起動後、qmail-scanner-1.24/contribで
 ./test_installation.sh -doit
 mail-inject: fatal: qq temporary problem (#4.3.0)
するとエラーがでました。これはperl-suidperlがなかったために出ているようでした。他にもclamdが動いてない場合とか...~
ここでひっかかったウィルスは/var/qmail/bin/qmail-scanner-queue.plの$scandirに記述してあるディレクトリのquarantine/にあるので、適当にけしておきましょう。

 Disallowed  characters found in MIME headers
と表示されまた場合は、/var/qmail/bin/qmail-scanner-queue.plの
 my $BAD_MIME_CHECKS='1';
を
 my $BAD_MIME_CHECKS='0';
と修正してみてください。これはポリシーの問題ですが。
あとは、my @local_domains_arrayにドメインを追加しておきましょう。これで通知されるはずです。
*** リンク
http://www.qmail.org/qmailqueue-patch~
http://prdownloads.sourceforge.net/qmail-scanner/~
[[アンチウィルス(大変お世話になりました)>http://www.asahi-net.or.jp/~aa4t-nngk/qmail5.html]]~
[[メールサーバで行うウイルス対策>http://www.atmarkit.co.jp/flinux/rensai/qmail08/qmail08a.html]]~
[[メールサーバでのウイルススキャン -qmail編- >http://www.itmedia.co.jp/help/howto/security/special6/]]~
[[ClamAVのページ>http://clamav-jp.sourceforge.jp/]]~
http://www.kuri3.net/pukiwiki/index.php?SecureMail#qmail_scanner~
http://qmail-scanner.sourceforge.net/FAQ.php~
http://www.fkimura.com/qmail0.html~
[[ORDB FAQ>http://ordb.org/faq/#usage~]]

** SpamAssassin
まずhttp://www.procmail.org/よりprocmail version 3.22をダウンロードします。procmailはメールの振り分けを行うソフトです。maildropを使う場合はいりません。
 tar xzvf procmail-3.22.tar.gz
MakefileのBASENAMEでインストール先を指定できます。
 BASENAME = /usr/local
では続けます。
 make
 make install-suid
またいくつかPerlモジュールを入れておきます。
 perl -MCPAN -e shell
 install Digest::SHA1
 install HTML::Tagset
 install HTML::Parser
 insall Storable
 install Net::DNS

 (参考 install HTML::Parser DB_File Net::DNS BerkeleyDB Net::SMTP Mail::SPF::Query IP::Country::Fast )
ではhttp://spamassassin.apache.org/より、3.0.4をダウンロードしました。(2006/4/26 3.1.8)
 tar xzvf Mail-SpamAssassin-3.0.4.tar.gz
 cd Mail-SpamAssassin-3.0.4
 perl Makefile.PL PREFIX=/usr/local
check network rulesをyにしてそれ以外は、すべてリターンでいきました。
 make
 make install
うまくいっているかテストしてみましょう。
 spamassassin -t < sample-nonspam.txt
 spamassassin -t < sample-spam.txt
/usr/local/bin/にインストールされたspamdとspamcはバイナリでspamdがデーモンで常駐し、spamcが利用するということになります。
 cp spamd/redhat-rc-script.sh /etc/init.d/spamd
 chmod 700 /etc/rc.d/init.d/spamd
 cd /etc/init.d/
 chkconfig --add spamd
次にコピーしたspamdのSPAMDOPTIONSを
 "-d -m5 -v -u vpopmail"
にしておきます。 vpopmailを使う為です。また
 if [ -f /etc/sysconfig/spamassassin ] ; then
        . /etc/sysconfig/spamassassin
 fi
をコメントにしておきました。また
 daemon $NICELEVEL spamd $SPAMDOPTIONS -r $SPAMD_PID
を
 daemon $NICELEVEL /usr/local/bin/spamd $SPAMDOPTIONS -r $SPAMD_PID
にしてます。テストしているときにとても遅いと思っていたのですが、古いバージョンが/usr/binにおり、そちらで動いていたので、フルパスにしてます。
spamdのオプションはhttp://spamassassin.apache.org/full/3.0.x/dist/doc/spamd.htmlを参照しましょう。
次に/etc/mail/spamassassin/local.cfを[[TLEC - 個人ユーザ用SPAM避けspamassassin のユーザ定義ファイル>http://tlec.linux.or.jp/docs/user_prefs]]([[SpamAssassin を fetchmail から利用する方法>http://tlec.linux.or.jp/docs/spamassassin.html]])で置き換えておきます。~
スコアはlocal.cfの
 required_score 13.0
で設定しておきます。~
ではmaildropでの方法です。
/etc/mailfilterを作成します。
 if ( $SIZE < 500000 )
 {
   exception {
     xfilter "/usr/local/bin/spamc -f -u $EXT@$HOST"
   }
 }
 to "./Maildir/"
その後、権限の変更をします。
 chown vpopmail:vchkpw /etc/mailfilter
 chmod 600 /etc/mailfilter
では振り分けをしたいユーザのディレクトリ(/home/vpopmail/domain/hogedom/hogeuser)に.qmailファイルを作成します。
 | /var/qmail/bin/preline /usr/local/bin/maildrop /etc/mailfilter
後はspamdを起動させて、確認しましょう。
 /etc/init.d/spamd start
spamと判断されたメールを振り分けるには/home/vpopmail/domains/hogedom/hogeuser/Maildirに.spamをvpopmailユーザで作成しておきます。
 cd /home/vpopmail/domains/hogedom/hogeuser
 maildirmake -f spam ./Maildir
/etc/mailfilterを修正します。 うまくいかない... 調査中→どうも    if (...) {って書いちゃだめで、{しかない行をつくらないといけないようでした。
参考:http://www.is.titech.ac.jp/~yanagis0/text/maildrop.html ありがとうございます。
 if ( $SIZE < 500000 )
 {
     exception {
       xfilter "/usr/local/bin/spamc -f -u $EXT@$HOST"
     }
 }
 if (/^X-Spam-Flag: *YES/)
 {
   to "./Maildir/.spam/"
 }
 else
 {
   to "./Maildir/"
 }

procmailの場合は、
振り分けをしたいユーザのディレクトリ(/home/vpopmail/domain/hogedom/hogeuser)に.qmailファイルを作成します。
 | /usr/bin/procmail -m ./.procmailrc
次に.procmailrcを作ります。
 PATH=/usr/bin:/bin:/usr/local/bin
 HOME=/home/vpopmail/domains/hogedom/hogeuser
 MAILDIR=$HOME/Maildir
 DEFAULT=$HOME/Maildir/
 LOGFILE=/var/log/procmail/hogeuser.log
 LOCKFILE=$MAILDIR/procmail.lock
 :0fw:
 * < 600000
 | /usr/local/bin/spamc
 :0:
 * ^X-Spam-Status:.Yes
 $HOME/Maildir/.spam/
LOCKFILEまではいいとして、:0 はひとつの判定条件の始まりを示します。次の:0もしくはEOFまででひとつの判定条件です。次の*は条件文になります。^は行頭と意味しますので、X-Spam-Status:.Yesがあれば、$HOME/Maildir/.spam/に移動しなさいという意味になります。
また$HOME/Maildir/.spam/を! hoge@hogehoge.jpとしておけば転送されますので、spam用のアカウントに飛ばしてもいいでしょう。~

さてspam以外のメールを別のところに転送したい場合はどう書こうか...~
 PATH=/usr/bin:/bin:/usr/local/bin
 HOME=/home/vpopmail/domains/hogedom/hogeuser
 MAILDIR=$HOME/Maildir
 DEFAULT=$HOME/Maildir/
 LOGFILE=/var/log/procmail/spam.log
 LOCKFILE=$MAILDIR/procmail.lock
 :0fw:
 * < 600000
 | /usr/local/bin/spamc
 :0:
 * ^X-Spam-Status:.Yes
 ! spam@hoge.jp
 :0c:
 * ^X-Spam-Status:.No
 ! keitai@hoge.jp
としておけば、スパムと判定されたメールはspam@hoge.jpに飛び、判定されなかったやつはkeitai@hoge.jpに飛びます。
また:0cとしているので、コピーが残りますので、両方で受けれます。
~
ではテストしてみましょう
 XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
を含むメールをおくってみるとspamと判定されればOKです。
内容は、[[Tests Performed>http://spamassassin.apache.org/tests_3_2_x.html]]を参照しましょう。~
sa-updateとすると
 Can't locate Archive/Tar.pm in @INC (@INC contains:...
とでたので、
 perl -MCPAN -e shell
 Archive::Tar.pm
として入れておきました。/var/lib/spamassassin/3.002004にダウンロードされてます。~
参考:http://spamassassin.jp/modules/xhnewbb/viewtopic.php?topic_id=14

では学習もさせましょう。いろいろとspamと判定されているものやすりぬけたものを仮に/home/hoge/Maildir/curに集めておいて、
 /usr/bin/sa-learn --spam /home/hoge/Maildir/cur
とすると、学習してくれるのですが、
 plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/Check.pm in @INC
 plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/HTTPSMismatch.pm
 plugin: failed to parse plugin (from @INC): Can't locate Mail/SpamAssassin/Plugin/URIDetail.pm
とかいろいろエラーがでちゃいましたので、
 perl -MCPAN -e shell
 install Mail::SpamAssassin::Plugin::Check
とかしていれてやりました。
spamと判断されたくない場合は、local.cfに
 whitelist_from *hoge.co.jp
 whitelist_from test@hoge.co.jp
 whitelist_*@hoge.co.jp
とか追加しておきます。

実行すると、
 netset: cannot include 127.0.0.1/8 as it has already been included
ってなメッセージがでました。
http://www.global-domination.org/forum/viewtopic.php?p=3528を参考にしてみよっと。
***TVD_SPACE_RATIO
なんかこれでよくスコアが上がってる。文章にどの割合で空白文字が入っているかみたいなんだけど、日本語じゃないから
そこまでシビアにみないでもいい気がする。てことで、
user_prefsに
 score TVD_SPACE_RATIO 0
を追記した。

***リンク
[[Procmail の紹介とレシピの書き方>http://www.jaist.ac.jp/~fjt/procmail.html]] 大変わかりやすくレシピの書き方を紹介されてます。~
[[PROCMAIL>http://www.linux.or.jp/JM/html/procmail/man1/procmail.1.html]] エラーメッセージ等大変参考になりました。~
[[スパムアサシン(spamassassin)の設定メモ>http://staff.miyakyo-u.ac.jp/~m-taira/Lecture/spamassassin.html]] いい加減なメモとありましたが、大変助かりました。~
[[SpamAssassin で spam メールの排除>http://www.freewheelburning.com/linux/spamassassin.html]] procmailからSpamAssassinまで丁寧に解説されておられます。spam メールのサンプルとかありました。~
[[作業メモ>http://www.i-ml.jp/cgi-bin/bbs/memo.cgi?sch=%5B43%5D]] spamassassin+vpopmail+procmailで自動振り分けの紹介です。~
[[作業メモ>http://www.i-ml.jp/cgi-bin/bbs/memo.cgi?sch=%5B44%5D]] spamassassin メモ~
[[oheso.cfg>http://somin.oheso.com/oheso.cfg/archives/2005/01/easpamassassino.html]] SpamAssassinのインストールについていかかれています。~
http://search.cpan.org/src/FELICITY/Mail-SpamAssassin-2.62/spamd/README.spamd-vpopmail vpopmailでSpamAssassinを使う方法が書かれています。~
http://search.cpan.org/src/FELICITY/Mail-SpamAssassin-3.1.8/spamd/README.vpopmail こちらは3.18用です。
[[Debian GNU/Linux>http://www.unix-power.jp/linux/qmail-scanner.html]] バーチャルドメインSPAM設定が大変ためになりました。~
[[blogのようなもの>http://www.b-dash.net/weblog/tanikin/archives/000022.html]] 大変参考にさせていただいているサイトです。~
[[サーバー構築 はまりメモ>http://www.elemsoft.com/tech/server/courier-spam.html]] Courier Mail Server + maildrop + spamassassinがわかりやすく紹介されておられます。~
[[SpamAssassin によるスパムメール対策>http://linux.kororo.jp/cont/server/spamassassin.php]] とても丁寧な解説があります。~
** vqadmin
vqadminはWebからドメイン管理を行うためのツールです。アカウントの追加等も可能です。ではhttp://www.inter7.com/index.php?page=vqadminからダウンロードします。
vqadmin-2.3.2.tar.gzを落としました。
 tar xzvf vqadmin-2.3.2.tar.gz
 ./configure --enable-cgibindir=/usr/local/apache/cgi-bin
 make
 make install-strip
ではhttpd.confに
 ScriptAlias /cgi-bin/vqadmin/ "/usr/local/apache/cgi-bin/vqadmin/"
 <Directory "/usr/local/apache/cgi-bin/vqadmin">
    Deny from all
    Options ExecCGI
    AllowOverride AuthConfig
    Order deny,allow
 </Directory>
としてやります。次に/usr/local/apache/cgi-bin/vqadminにある、.haccessを見てみます。これで、vqadmin.passwdとあるはずですので、パスワードファイルを作成します。
 /usr/local/apache/bin/htpasswd -bc vqadmin.passwd admin passwd
では、http://www.test.com/cgi-bin/vqadmin/vqadmin.cgiで表示されればOKです。
ただし、このとき/cgi-bin以外に入れた場合は、/cgi-bin/vqadmin/htmlにあるhtmlを直しましょう。

** SqWebMail
Maildir形式に対応した、Webサーバ経由のメーラーです。ではhttp://www.tom.comm.waseda.ac.jp/~ichi/sqwebmail/japan/からsqwebmail-3.3.7-p1.japan.1.4.tar.gzをダウンロードします。
 ./configure --enable-mimecharset=iso-2022-jp --enable-cgibindir=/test/cgi-bin/ \ 
 --enable-imagedir=/etc/images/sqwebmail \ 
 --enable-imageurl=/images/sqwebmail --disable-authpwd --enable-authvchkpw
 make
 make install-strip
 make install-configure
-enable-mimecharset=iso-2022-jp 日本語
-enable-cgibindir=/test/cgi-bin SqWebMailcgiのインストール先
-enable-imagedir=/etc/images/sqwebmail イメージのディレクトリを指定
-enable-imageurl=/image/sqwebmail イメージのディレクトリのURL
-disable-authpwd vpopmailを使っているので、/etc/passwd認証は使いません。
-enable-authvchkpw  vpopmailのvchkpw認証を使います。

/usr/local/share/sqwebmail/にインストールされてます。/usr/local/share/sqwebmail/authdaemonrcのauthmodulelistは
 authmodulelist="authvchkpw"
にしておきます。
ではcronにキャッシュをクリアする設定を追加しておき、毎日5時にcacheを掃除します。
 0 5 * * * /usr/local/share/sqwebmail/cleancache.pl
また承認用モジュールを起動します。
 /usr/local/share/sqwebmail/libexec/authlib/authdaemond start
これは/etc/rc.d/rc.localにでも記述しておきましょう。
ではブラウザから起動してみましょう。http://www.test.com/cgi-bin/sqwebmail 
送信できん........ いろいろと調べていると、/usr/local/share/sqwebmailにあるsendit.shの中に
 exec /usr/sbin/sendmail -oi -t -f "$1"
とあったんですが、これを
 exec /var/qmail/bin/qmail-inject -f "$1"
に変更しておきましょう。
/var/log/messagesをみていると
 sqwebmail: maildircache: Cache create failure - unable to create /var/cache/sqwebmail/153390/so/xxx@yyy.zzz.authdaemon.sate
と出力していました。この場合、ls -laで/var/cache/の権限を確認してください。
添付ファイルが大きいとき
 Attachment size exceeds limit set by system administrator
とエラーが表示されます。
 --with-maxmsgsize=20000000
 --with-maxformargsize=20000000
 --with-maxargsize=20000000
とかコンパイル時に指定しないとだめっぽいです。2MがMAX?

http://qmailsolutions.com/webmailer/sqwebmail.html~
http://www.tom.comm.waseda.ac.jp/~ichi/sqwebmail/~

** IlohaMail
WebMailです。http://blog.ilohamail.org/よりダウンロードしまいた。
 wget http://download.ilohamail.org/files/IlohaMail-0.8.14-rc3.tar.gz
後はwebrootにコピーしたらOKです。もしくはaliasで。なぜか添付がうまくいかないー あれ?うまくいってる?なぜだ?しかしセットアップは楽です。別にMySQLを使わなくても動きますので、お手軽にはじめたいときはいいです。初期画面のデフォルトはIlohaMail\conf\login.phpで変更します。あら?添付ファイルをつけたメッセージをIlohaMailから送ってIlohaMailで見てみると添付としてでなくて、そのままみれてしまいます。ん?メールヘッダを見てみると、Content-Typeが2つくっついてますね。
 Content-Type:multipart/mixed; boundary=・・・・・・
 Content-Type:text/plain;・・・・・・
どうもこの最後のContent-Type:text/plain;をみてテキストと判断しているようです。これは送信時に問題がありそうです。source/compose2.phpの605行目からみていきますと、
 if (!empty($SMTP_SERVER)){
とありますが、この$SMTP_SERVERは、conf/conf.phpの$SMTP_SERVERの値です。ここに値が設定されているかどうかで、smtp_mailかmailのどちらかをつかうか変わります。こめんとにも
 smtp_mail //send thru SMTP server using cusotm SMTP library
 mail //send using PHP's mail() function
とありました。このmailがヘッダの最後にContent-Type:text/plainをつけているようでしたので、$SMTP_SERVERを設定してやるとちゃんと見れました。

ん?utf-8のメールが化けているな。lang/common.incのfunction LangDecodeMimeString($str, $charset){
に
 //return utf8ToUnicodeEntities($rest);
 return mb_convert_encoding($rest,$charset,"AUTO");
とすると件名は化けなくなった。まだボディが化けてるな。
include/read_message_print.incの
 /* run through character encoding engine */
 echo "\n<!-- converting from $charset to $my_charset //-->\n";
 $body=LangConvert($body, $my_charset, $charset);
を
 echo "\n<!-- converting from $charset to $my_charset //-->\n";
 $body=mb_convert_encoding($body,$my_charset,"AUTO");
 //$body=LangConvert($body, $my_charset, $charset);
にして、
 if (!$html_encoded){
     if ($is_unicode) $line = utf8ToUnicodeEntities($line);    
     else $line = encodeUTFSafeHTML($line);
 }
を
 if (!$html_encoded){
     if ($is_unicode) $line = encodeUTFSafeHTML($line);    //utf8ToUnicodeEntities($line);    
     else $line = encodeUTFSafeHTML($line);
 }
にするととりあえず表示されましたが、かなり抜本的な解決ではないです。

http://fkimura.com/ilohamail0.html

** qmHandle
qmHandleはqmail-qstat、qmail-qreadプラス、キューの削除も行えます。
http://qmhandle.sourceforge.net/からqmhandle 1.2.0 をダウンロードしました。
 mkdir /var/qmail/qmHandle
 cd /var/qmail/qmHandle
 tar xvfz qmHandle*
 ln -s /var/qmail/qmHandle/qmHandle /usr/bin/qmhandle
ではqmhandleを起動してます。オプションは以下のとおりです。
 -a 再送
 -l ローカル/リモートすべてのキューを表示 
 -L ローカルキューを表示 
 -R リモートキューを表示 
 -s 統計情報の表示 
 -mN Message-Id Nのメッセージを表示 
 -dN Message-Id Nのキューを削除 
 -D ローカル/リモートすべてのキューを削除 
 -c 出力結果をカラー表示 
 -N Message-Idを表示。ただし、-l、-L、-Rオプションと一緒に指定する必要がある 

また[[Kawa.netxp queue-fast.pl - qmail のメールキューの閲覧・削除>http://www.kawa.net/works/qmail/queue-fast.html]]に
指定アドレス宛のキューの削除等公開されており、大変参考にさせていただいております。~

** qmailanalog
http://cr.yp.to/software/qmailanalog-0.70.tar.gzからダウンロードして、展開してコンパイルです。
 tar xzvf qmailanalog-0.70.tar.gz
 cd qmailanalog-0.70
 make
エラーがでました。その場合は、error.hを修正します。extern int errno;の下に#include <errno.h>を追加して、
 make
 make setup check
これで/usr/local/qmailanalog/にインストールされてます。binにmatchupってあるとおもいますが、これが整形をしてくれます。またzやxで始まるスクリプトが解析をおこないます。では実行してみます。sploggerの場合です。
 #!/bin/sh
 #
 PATH=/usr/local/qmailanalog/bin:/var/qmail/bin:$PATH
 MAILLOG="/var/log/maillog"
 QMAILLOG="/var/tmp/qmail.$$"
 MAILTO=mailto@hoge
 MAILFROM=mailfrom@hoge
 /usr/bin/awk '{$1="";$2="";$3="";$4="";$5="";print}' < $MAILLOG | matchup > $QMAILLOG
 (echo "To: $MAILTO"
 echo "From: $MAILFROM"
 echo "Subject: maillog"
 echo ""
 zoverall < $QMAILLOG
 zfailures < $QMAILLOG
 zdeferrals < $QMAILLOG
 zrecipients < $QMAILLOG
 zsenders < $QMAILLOG )| qmail-inject -f $MAILFROM
 /bin/rm -f $QMAILLOG
これでメールがくればとりあえずOKです。よければ[[cron>Linux TIPS]]に登録しておきましょう。ちなみに
 zoverall <--基本的な統計 
 zfailures <--失敗統計 
 zdeferrals <--延期統計 
 zrecipients <--受信者統計 
 zsenders <--送信者統計 

http://www.atmarkit.co.jp/flinux/rensai/qmail10/qmail10a.html~
http://www.emaillab.org/djb/qmailanalog/qmailanalog.html~

** メーリングリストmailman
mailmanというソフトをインストールします。http://www.list.org/download.htmlからmailman-2.1.5.gzをダウンロードしました。またhttp://mm.tkikuchi.net/からMailman-2.1.5 ジャンボ修正パッチもダウンロードしました。このmailmanはpython2.1以降が必要であるとのことなので、インストールされているか確かめましょう。またpythonにはhttp://www.python.jp/Zope/downloadからJapaneseCodecsもいれておきましょう。
mailmanを解凍して、そのディレクトリで
 patch -p0 < /work/mailman-2.1.5+patch.20040901.gz
としました。ではmailman用のユーザをつくります。
 useradd -d /home/mailman mailman
 groupadd mailman
 chgrp mailman /home/mailman
 chmod a+rx,g+ws /home/mailman



http://nav.bandersnatch.org/clues/qmail-vpopmail-mailman.html
http://www.python.jp/Zope/download
** メーリングリストfml
fmlというソフトを使います。http://www.fml.org/software/fml/index.htmlのhttp://www.fml.org/software/fml/download.htmlから、fml-4.0-stable-20040215.zipをダウンロードしました。
http://www.fml.org/software/fml/INSTALL/index.htmlを参考にインストールしてきます。
 groupadd fml
 useradd -g fml fml
 mkdir /usr/local/fml
 chown fml:fml /usr/local/fml
 su - fml
 mkdir /home/fml/ml
 perl makefml install
インストールが始まります。このとき
 TOP LEVEL ML DIRECTORY    [/var/spool/ml] /home/fml/ml
以外はリターンでいきました。バーチャルドメインは、
 DOMAIN NAME               virtualdomain.com
 FQDN                      virtualdomain.com
 EXEC FILES DIRECTORY      /home/vpopmail/domains/virtualdomain.com/fml
 TOP LEVEL ML DIRECTORY    /home/vpopmail/domains/virtualdomain.com/ml
後はyでリターン
 chown -R vpopmail.vchkpw /home/vpopmail/domains/virtualdomain.com/fml
 chown -R vpopmail.vchkpw /home/vpopmail/domains/virtualdomain.com/ml
メーリングリストをつくります。makefmlでヘルプが出るので参考にしてください。
 cd /home/vpopmail/domains/virtualdomain.com/fml
 makefml newml test
 cd /home/vpopmail/domains/virtualdomain.com
 ln -s /home/vpopmail/domains/virtualdomain.com/ml/etc/qmail/alias/.qmail* /home/vpopmail/domains/virtualdomain.com
次に/home/vpopmail/domains/virtualdomain.com/ml/etc/qmail/alias/で.qmail-test-admin、.qmail-test-requestのアドレスを編集します。また/var/qmail/users/assignも編集します。
 +virtualdomain.com-test:vpopmail:1089:1089:/home/vpopmail/domains/virtualdomain.com/ml/etc/qmail/alias:-:test:
編集後、qmail-newuでcdbを更新します。ユーザの追加は/home/vpopmail/domains/virtualdomain.com/fmlで
 makefml add ML addr               add <addr> to <ML>
WEBで操作したい場合は、
 makefml admin.cgi config


CGIの設定
/usr/local/fml/makefml admin.cgi config

/usr/local/fml/makefml newml test

***リンク
http://www.kt.rim.or.jp/~atsato/ml/basic/software.html~
http://www.hitsuji.gr.jp/yms/yuzo/linux/fml.html~
http://www.omake-world.com/~fsting/inst_memo/fml.html~
http://eshima.net/main/linux_tips.php?ttl=mailserver~
http://ww7.tiki.ne.jp/~kusa/memo/fml.html~
http://r286.com/arc/352~
http://www.sapporo.iij.ad.jp/staff/fukachan/fml/menu.html

** 自動応答
自動応答のためのツールをインストールします。
 wget http://www.inter7.com/devel/autorespond-2.0.5.tar.gz
 tar xzvf autorespond-2.0.5.tar.gz
 cd autorespond-2.0.5
 make 
 make install
日本語で応答したい場合は、
autorespond.cの265行目に
 fprintf(fdm,"Content-Type: text/plain; charset=\"ISO-2022-JP\"\n" );  
です。通常は、.qmailに設定を書いておけばいいのですが、vpopmailを使用している場合は、
 /home/vpopmail/domains/test.com/.qmail-hoge
というファイルを作成し、
 | autorespond 1 10 hoge/autorespond.msg hoge/autorespond_log
といった行を追加しておきます。autorespond.msgはメッセージの中身です。autorespond_logはディレクトリです。実はこのファイルに|以下に実行ファイルを書いておけばそのファイルが実行されるのです。1は受付時間(単位:秒)で10は指定された時間以内に受け付けるメールの最大数です。
***リンク
http://www-komo.ise.eng.osaka-u.ac.jp/~kaneta/unix/misc.html~
http://www.system-act.com/mail/autorespond.html~
http://www.atmarkit.co.jp/flinux/rensai/qmail07/qmail07b.html~ 

** qmailadmin
WEB上からユーザアカウントが作成できるツールです。http://www.inter7.com/index.php?page=qmailadminからqmailadmin-1.2.0.tar.gzをダウンロードしましした。また必要なソフトもダウンロードしました。
 autorespond -> http://www.inter7.com/index.php?page=developmentからautorespond-2.0.5.tar.gz
 ezmlm or ezmlm-idx -> http://www.inter7.com/index.php?page=softwareからezmlm-0.53-idx-0.41.tar.gz
ではインストールです。
 tar zxvf autorespond-2.0.5.tar.gz
 cd autorespond-2.0.5
 make 
 make install
これで/usr/binにautorespondがあるはずです。そのまま実行すると、
 autorespond: usage: time num message dir [ flag arsender]
と表示されます。
 time:メッセージ(数秒の)を考慮する時間
 num:時間セカンドの中で許すメッセージの最大値
 message:送るメッセージのファイル名
 dir:ログを作成するディレクトリ
 flag(送信されてきたメッセージの扱い方)
  0:なにもしない。
  1:応答メッセージに添付(デフォルト指定)
 arsender(応答メッセージ中の差出人)
  +:Fromを空にする
  $:送られてきたメッセージ中の「To:」を使用
次にezmlmです。
 tar xzvf ezmlm-0.53-idx-0.41.tar.gz
 cd ezmlm-0.53-idx-0.41
 make
 make man
 cp -f ezmlmrc.jp ezmlmrc
 make setup
これで/usr/local/bin/ezmlmにインストールされました。ではqmailadminです。
 tar xzvf qmailadmin-1.2.0.tar.gz
 ./configure \
 --enable-htmldir=/webroot/qmailadmin/html \
 --enable-imagedir=/webroot/qmailadmin/html/images \
 --enable-imageurl=/qmailadmin/html/images \
 --with-htmllibdir=/usr/local/share \
 --enable-cgibindir=/webroot/qmailadmin/cgi-bin \
 --enable-cgipath=/qmailadmin/cgi-bin/qmailadmin \
 --enable-autoresponder-bin=/usr/bin \
 --enable-ezmlmdir=/usr/local/bin/ezmlm/ \
 --enable-ezmlm-mysql=n
 make
 make install
ここで
 --enable-modify-spam \
 --enable-spam-command="|/var/qmail/bin/preline /usr/local/bin/maildrop /home/vpopmail/etc/mailfilter"
を追加し、mailfilterを以下の内容で作成しておけば、spamassassinが振り分けしてくれるようなのですが、検証はしてません。
 SHELL="/bin/sh"
 import EXT
 import HOST
 VPOP="| /home/vpopmail/bin/vdelivermail '' bounce-no-mailbox"
 VHOME=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST`
 logfile "mailfilter.log"
 if ( $VHOME eq "" )
 {
   log "========"
   log "ERROR: VHOME isn't set!"
   to "$VPOP"
 }
 else
 {
   if ( $SIZE < 262144 )
   {
      exception {
         xfilter "/usr/bin/spamc -f -u $EXT@$HOST"
      }
   }
   if (/^X-Spam-Flag: *YES/)
   {
      exception {
         include $VHOME/Maildir/.mailfilter
      }
      `test -d $VHOME/Maildir/.Spam`
      if( $RETURNCODE == 1)
      {
         `/usr/local/bin/maildirmake -f Spam $VHOME/Maildir`
      }
      exception {
         to "$VHOME/Maildir/.Spam/"
      }
   }
   exception {
      include $VHOME/Maildir/.mailfilter
   }
   # default delivery
   exception {
      to "$VHOME/Maildir/"
   }
 }
spamassasinで

ではqmailadmin/cgi-binの.htaccessに
 SetHandler cgi-script
 Options +ExecCGI
として、http://hoge.com/qmailadmin/cgi-bin/qmailadminにアクセスしてみます。
***リンク
http://qmailsolutions.com/webifs/qmailadmin.html#autorespond~
http://www.atmarkit.co.jp/flinux/rensai/qmail07/qmail07b.html~

**Outbound Port25 Blocking
ISPの送信用メールサーバを利用しないメール送信を制限するものだそうです。こちらにわかりやすく書いてあります。http://bb.watch.impress.co.jp/cda/bbword/8764.html~
とりあえず、qmail-smtpd-authを使って、submission port(587)に対応させていてる。あとは DomainKeysの設定だ。SenderIDってのもある。 [[ネットワークセキュリティ Expert 2 Software Design>http://www.amazon.co.jp/exec/obidos/ASIN/4774123935/worried-22]]の第3特集に概要があります。またオープンソースマガジン20062号にSPF,SenderID,DKIMの記事があります。
とりあえずの場合は、
 iptables -A PREROUTING -p tcp -m tcp --dport 587 -j REDIRECT --to-ports 25
で587を25に転送しておいてもいいのですが、当然smtp authではありません。
**SPF
DNSのTXTに
 hoge.com.       IN TXT  "v=spf1 +ip4:1.2.3.4 ~all"
設定したら、check-auth@verifier.port25.comにメールを送って確認。passと返ってくればOK

[[Sender ID:送信者側の設定作業>http://www.atmarkit.co.jp/fsecurity/special/82senderid/sender103.html]]~
[[Sender ID:受信者側の設定作業>http://www.atmarkit.co.jp/fsecurity/special/87senderid/sender201.html]]~


spfのパッチを適用している場合は、
 echo 1 > /var/qmail/control/spfbehavior

 # 0: Never do SPF lookups, don t create Received-SPF headers
 # 1: Only create Received-SPF headers, never block
 # 2: Use temporary errors when you have DNS lookup problems
 # 3: Reject mails when SPF resolves to fail (deny)
 # 4: Reject mails when SPF resolves to softfail
 # 5: Reject mails when SPF resolves to neutral
 # 6: Reject mails when SPF does not resolve to pass
これは未調査



http://www.microsoft.com/mscorp/safety/content/technologies/senderid/wizard/~
http://www.atmarkit.co.jp/fsecurity/special/82senderid/sender103.html~
http://blog.livedoor.jp/dankogai/archives/50809900.html~
** TIPS
***sendmailの入れ替え
 mv /usr/sbin/sendmail /usr/sbin/sendmail.org
 mv /usr/lib/sendmail /usr/lib/sendmail.org
 ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
 ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
***メール受信後にコマンドを実行したい(dot-qmail)
.qmail-hogeファイルを作り、
 | /hoge.sh 
[[届いたメールの料理の仕方 (1) ~qmail編~ >http://dsas.blog.klab.org/archives/50524479.html]]~
[[届いたメールの料理の仕方 (2) ~qmail編~ >http://dsas.blog.klab.org/archives/50524481.html]]~
***Sorry, I couldn't find any host test.com. (#5.1.2)
ホストがみつからなかったときのメッセージです。またDNSのMXを確認してください。
***ローカルのユーザに送れない。
localsにlocalhostだけが記述されており、自ホストの記述がない場合にでました。
Sorry._Although_I’m_listed_as_a_best_preference_MX_or_A_for_that_hostが出力されていたので調べたらこれが原因でした。
***キューの状態を表示する。
 /var/qmail/bin/qmail-qstat
***たまっているメッセージキューのヘッダ情報を表示する
 /var/qmail/bin/qmail-qread
***キューにとどまる期間を指定したい
/var/qmail/control/にqueuelifetimeというファイルを作成して、その中に秒を指定すればいいそうです。
デフォルトでは60万4800秒(1週間)みたいです。
http://www.atmarkit.co.jp/flinux/rensai/qmail14/qmail14b.htmlを参照させていただきました。
***受信メールサイズの制限
/var/qmail/control/にdatabytesというファイルを作成して、その中にサイズを指定すればいいそうです。
 echo "31457280" > /var/qmail/control/databytes
で30Mbyte(30*1024*1024)に制限~
参考:http://www.atmarkit.co.jp/flinux/rensai/qmail03/qmail03a.html
***配送試行間隔について
[[メールサーバーってどういう感じで再試行をしているのかな>http://www.ayamizu.com/mail_retry.htm]]を参考にさせていただきました。
***メール転送
vpopmailの場合ですが、/home/vpopmail/domains/test.com/hogeというようにtest.comにhogeとユーザが作られているとします。この場合、
 /home/vpopmail/domains/test.com/.qmail-hoge
といったファイルを作成し、
 hoge2@tensou.com
 /home/vpopmail/domain/test.com/hoge/Maildir/
とします。1行目が転送したいメールアドレス、2行目は元に残しておきたい場合に記述しておきます。
***1ユーザで容量に制限をかけたい
http://www.pgregg.com/projects/qmail/mailquotacheck/にmailquotacheck.shというシェルスクリプトがあります。これを.qmail-hogeに
 |mailquotacheck
 ./Maildir/
と記述します。またmailquotacheckにquota=3000とか設定されていますので、これを変更しましょう。これはByteです。
***docomoからきたメールに返信するとUnknown userとなる
http://www.hatena.ne.jp/1090241991
***特定のアドレスを拒否したい
/var/qmail/control/badmailfromに
 spam@spam.com
 @spam.com
とか書きます。
***特定の相手からメールが届かない
よく原因はわかりませんが、MTUを見直してみましょう。
 ping -f -l 1424 hoge.com
で
 Packet needs to be fragmented but DF set.
が表示されないところでまで1424を下げていき、その値で、MTUはICMPヘッダ(8バイト)とIPヘッダ(20バイト)が含まれてますので、
 ifconfig eth0 mtu 1452
セットします。
***ダブルクォートがメールアドレスに付加される。
@の前にドットが有る場合、そのアドレスにダブルクォートが付加されるので、注意する。
http://sonic64.com/cat_qmail.html
***clamdscan: corrupt or unknown clamd scanner error or memory/resource/perms problem - exit status 512/2
メールが送れないので、/var/log/maillogを参照すると、このようなエラーがでてました。こりゃ困ったと思いながら、
clamdを再起動しても、どうも動いていないようです。/var/log/messageを見ると
 Apr  1 10:00:00 hoge clamd[7063]: Socket file /tmp/clamd exists. Either remove it, or configure a different one.
 Apr  1 10:00:00 hoge clamd: clamd停止 failed
どうも、うまくclamが終了してなくて、/tmp/clamdファイルが残っていたようです。消して再起動すると、うまくいきました。
***メールアドレスで使用できない文字
[[メールアドレスで使用できない文字の種類がわかるサイトを教えてください。>http://q.hatena.ne.jp/1133015187]]~
***グリーティング・メッセージを変更したい
/var/qmail/control/smtpgreetingファイルを作成して、
 ホスト名 メッセージ
とします。ですので、
 host message
みたいにしておきます。~
http://www.atmarkit.co.jp/flinux/rensai/qmail14/qmail14b.html~
***vpopmailでバウンスメールを出さない。(大量宛先不明エラーメール対策)
 /home/vpopmail/domains/バーチャルドメイン名/.qmail-default
を開くとデフォルトでは、
 /home/vpopmail/bin/vdelivermail ’’bounce-no-mailbox 
となっていますが、
 /home/vpopmail/bin/vdelivermail ’’delete
にするか
 /home/vpopmail/bin/vdelivermail ’’hoge@hoho.com
とかにして宛先を変更します。~
[[vpopmailでのバウンスメールSPAM撃退>http://www.databasebank.com/programmers/frm_detail.php?v_id=2127]]

***Sorry. Although I'm listed as a best-preference MX or A for that host,it isn't in my control/locals file, so I don't treat it as local. (#5.4.6)
はじめはDNS間違えたかな~とか思っていましたが、実は、バーチャルドメインにしてたのに、virtualdomainsを作ってなかったんですね。セカンダリにしてsmtproutesを作っていたりもしたんです。他のことが原因で出ることもありますが、ちょっと焦りました。

***content rejected (in reply to end of DATA command)
んー エラーが帰ってきたんですが、eo.k-opti.ad.jpが特に多い。
http://miniminiadmin.jugem.jp/?day=20070523

***quoted-printable
メーラを作っていたのですが、
 =1B$B$
とかで本文が化けているやつがあり、なんじゃこりゃと思いながらヘッダーを調べていると、
 Content-Transfer-Encoding: quoted-printable
となってました。
参考:
[[[文字化けすると、こう見える!>http://www003.upp.so-net.ne.jp/hat/imail/xsample.html]]~
http://yougo.ascii24.com/gh/32/003224.html
***なんやねん。Winmail.datって
添付ファイル送ったけど、添付されないことがあるって聞いて調べていたら、送信者はOutlook 2007で、受信者はOutlookExpress。
マイクロのメーラなんてつかわんでほしいなー~
[[Outlook 2007 でメールを送信すると、受信者側に Winmail.dat というファイルが添付される>http://support.microsoft.com/kb/941245/ja]]

** MEMO
smtproutes file

http://www.dbmail.org/

** リンク
[[qmail * djbdns by  D. J. Bernstein >http://www.qmail.jp/qmail.html]]~
[[実用qmailサーバ運用・管理術>http://www.atmarkit.co.jp/flinux/index/indexfiles/qmailindex.html]]~
[[SPAMメール徹底対策>http://www.atmarkit.co.jp/flinux/rensai/qmail03/qmail03c.html]]~
[[ログメッセージ>http://www.big.or.jp/~mio/it/it-old/qm/ref/qm_ref_qmail-log_5.html]]
[[FAQ(qmail-1.03)>http://man.qmail.jp/faq/faq.html]]~
[[qmailsolutions.com>http://www.qmailsolutions.com/]]~
[[qmail+vpopmailメモ>http://www.b-dash.net/solaris/vpopmail.html]]~
http://www.qmail.jp/qmail.html~
http://www.dpri.kyoto-u.ac.jp/~dptech/qm_memo/qm_memo.html~
http://www.ryouto.jp/linux/linux_15.html#POS011~
[[FAQ目次-Vpopmail>http://qmail.visionmakers.net/vpopmail/faq.html]]~
[[pukiwiki自宅サーバ構築メモ>http://www.kuri3.net/pukiwiki/]]~
http://www.ghost.jp/memo/freebsd/qmail.html~
http://atmarkit-www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=2364&forum=10&11~
http://www.omake-world.com/~fsting/inst_memo/vpopmail.html~
http://tenjin.coara.or.jp/~yano/computer/linux/qmail.html~
http://www.fkimura.com/mailman0.html~
http://mm.tkikuchi.net/pipermail/mmjp-users/2004-March/000779.html~
[[メールアドレスによって自動応答の内容を変える>http://kittz.net/perl/etc/qmail.html]]~
[[Stray Penguin>http://www.asahi-net.or.jp/~aa4t-nngk/qmail2.html]] 非常に丁寧な解説があります。~
[[qmailに届いたメールを、PHPをつかってMySQLに格納したいと思っています。>http://www.hatena.ne.jp/1102135670]]~
[[メールヘッダーについての理解>http://www6.wind.ne.jp/mrfujii/history/14hobbynow/pc-home/mailheader.htm]]~
[[telnetでのメール受信方法>http://ash.jp/net/telnet_pop3.htm]] POP3コマンド一覧~
[[消えない queue の消し方>http://freebsd.sing.ne.jp/FreeBSD/09qmail/]]~
[[qmail にて SMTP 認証を行ってみる>http://network.station.ez-net.jp/server/djb/qmail/smtp-auth.asp]]~
[[qmailの設定方法>http://warp.syns.net/2/2/index.html]]~
[[管理の小技集>http://www.asahi-net.or.jp/~aa4t-nngk/qmail4.html]] メールフィルタの作り方等わかりやすく載ってます。~
[[Linux Page (Server)>http://www.freewheelburning.com/linux/]]  セカンダリメールサーバー構築や、 SpamAssassin で spam メールの排除が紹介していただいてます。~
[[qmailメモ>http://www.b-dash.net/weblog/tanikin/archives/cat_qmail.html]] 大変丁寧な解説で参考にさせていただいております。~
[[自作ソフトウエア>http://seclan.dll.jp/dlunix.htm]]  qmail 用 .password を用いた smtp-auth/apop 対応パッチ仮想ユーザ対応版を公開されておられます。~
http://www.wikiroom.com/qmail~
[[qmailの設定方法>http://www.syns.net/2/2/]] smtp-auth等丁寧な解説があります。~
[[qmailでIPv6+TLS+SMTP-AUTH+POP3S+IMAPS>http://www.maid.ne.jp/%7Eyy/freebsd/qmail.html]] 非常に参考になります。~
[[qmail-1.03 制御ファイル>http://man.qmail.jp/jman5/qmail-control.html]]  qmailの制御ファイルの解説があります。
http://www.takemaru.com/microserver/~
http://linux.fken.ise.osaka-sandai.ac.jp/lu094/94694~
http://www.atmarkit.co.jp/fnetwork/rensai/netpro04/netpro01.html~
[[sendmail を捨て,qmail に乗り換える>http://www.gcd.org/sengoku/docs/NikkeiLinux00-03/qmail.ja.html]]~
[[第6章 スーパー&セキュアなMailサーバー構築(qmail編)>http://www.kuri3.net/modules/bwiki/index.php?MailServer]]~
丁寧で見やすいサイトです。~
[[目指せ!メールの達人!>http://www.luice.or.jp/~deai/backn/master/]]~
[[逆引きできないホストからのメールを遮断(qmail編)>http://www.b-dash.net/weblog/tanikin/qmail/]]~
[[第8章 SMTP-AUTH/STARTTLS & POP3 over SSL編>http://www.kuri3.net/modules/bwiki/index.php?SmtpAuth]]~
丁寧な説明があります。~

** 参考書籍
-[[10日でおぼえるRed Hat Linux9 サーバ構築・管理入門教室>http://www.amazon.co.jp/exec/obidos/ASIN/4798104124/worried-22]]~
Linuxに詳しくなく、初めてメールサーバーを立てるときはこれが一番はいりやすいかもしれません。
-[[qmailで作るメールサーバ徹底攻略>http://www.amazon.co.jp/exec/obidos/ASIN/4797320656/worried-22]]~
バーチャルドメイン等いろいろ詳しく乗っていたので大変重宝しました。~
** コメント
--#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS