# emerge qmail # emerge ucspi-tcp # emerge md5checkpw
#cd /var/qmail/bin #./config-fast FQDN
# nano -w /var/qmail/rc exec env - PATH="/var/qmail/bin:$PATH" \ qmail-start "`grep -v '^#' /var/qmail/control/defaultdelivery`"
qmail-start "`grep -v '^#' /var/qmail/control/defaultdelivery`" splogger qmail
# /var/qmail/bin/maildirmake /etc/skel/.maildir
# cd /var/qmail/alias/ # touch .qmail-postmaster .qmail-mailer-daemon .qmail-root # echo "[メールを受け取るユーザ]" >> .qmail-postmaster # echo "[メールを受け取るユーザ]" >> .qmail-mailer-daemon # echo "[メールを受け取るユーザ]" >> .qmail-root # chmod 644 .qmail*
#/var/qmail/rc &
#echo to: root@your_host.example.jp | /var/qmail/bin/qmail-inject
#ls ~/.maildir/new
-v すべてのメッセージを出す -u uid ユーザーIDをuidに切り替える -g gid グループIDをgidに切り替える -H 逆引きをしない(リモートホスト名を調べない) -R ident(接続したサーバのユーザー情報について、付加的な情報を返す)しない -x /etc/tcp.cdb cdbデータベース(/etc/tcp.cdb)で制御する -c limit 最大同時接続数をlimitに設定する(デフォルトは40) -P 逆引き、正引きで相手の正当性を調査する
# id -u qmaild 201 # id -g qmaild 200
# vi /etc/tcp.smtp ------------------------------------- 192.168.0.:allow,RELAYCLIENT="" 127.:allow,RELAYCLIENT="" ------------------------------------- # /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
#nano -w tcpqmail.sh
-#!/bin/sh -tcpserver -v -u[qmaildのUID] -g[nofilesのGID]-x /etc/tcp.smtp.cdb 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 & -tcpserver -v -u[201] -g[200]-x /etc/tcp.smtp.cdb 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 &
# cd /etc/init.d # nano -w qmail
#ln -s /etc/init.d/qmail /etc/runlevels/default/qmail
#!/bin/sh # set_path PATH=/var/qmail/bin:/usr/bin:/bin:/usr/local/bin
# /usr/bin/tcpserver -HR 0 pop3 /var/qmail/bin/qmail-popup \ [サーバの完全ドメイン名] /bin/checkpasswd /var/qmail/bin/qmail-pop3d .maildir &
# emerge ezmlm
ezmlm-check,ezmlm-clean,ezmlm-gate,ezmlm-get,ezmlm-idx,ezmlm-issub ezmlm-issub,ezmlm-list,ezmlm-make, ezmlm-manage,ezmlm-moderate,ezmlm-request,ezmlm-return, ezmlm-send,ezmlm-store,ezmlm-sub,ezmlm-tstdig,ezmlm-unsub, ezmlm-warn,dot-qmail
$ /usr/local/bin/ezmlm-make ~/ML ~/.qmail-ML testuser-ML mail.example.jp
# chown -R testuser /home/testuser/ML
testuser-ML@my.domain 投稿受付け用アドレス testuser-ML-subscribe@my.domain 登録用アドレス testuser-ML-unsubscribe@my.domain 退会用アドレス testuser-ML-get.123@my.domain 特定メーセージ取出し用アドレス testuser-ML-help@my.domain 案内メッセージ用アドレス testuser-ML-request@my.domain 説明用アドレス
# emerge ezmlm-idx
-a アーカイブを保存する(*) -A アーカイブを保存しない -c .ezmlmrcファイルを使用する -C .ezmlmrcファイルを使用しない(*) -d ダイジェストを作成する -D ダイジェストを作成しない(*) -e 既存設定を修正する -E 設定を新規作成する(*) -f prefix(Subject:の見出し)を付ける -F prefix を付けない(*) -g アーカイブの取り出しを制限する -G アーカイブを公開する(*) -i インデックスを作成する(*) -I インデックスを作成しない -k 投稿禁止リストを作成する -K 投稿禁止リストを作成しない(*) -l 参加者一覧の取り出し -L 参加者一覧なし(*) -m 投稿を審査する -M 投稿を審査しない(*) -n DIR/textの編集を許可 -N DIR/textの変更不可(*) -p 公開MLとする(*) -P MLを公開しない -q リクエスト形式を使う -Q リクエスト形式を使わない(*) -r 遠隔管理させる -R 遠隔管理させない(*) -s 登録審査をする -S 登録審査をしない(*) -t 添付文書を作る -T 添付文書を作らない(*) -u 登録ユーザーのみ投稿可能 -U だれでも投稿可能(*) -V バージョンを表示する -v バージョンを表示する -x 特定のMIMEパートを削除する (*)はデフォルトで有効になっているもの
#/var/qmail/bin/qmail-qstat
#/var/qmail/bin/qmail-qread
# emerge qmHandle
-l ローカル/リモートすべてのキューを表示 -L ローカルキューを表示 -R リモートキューを表示 -s 統計情報の表示 -vN Message-Id Nのメッセージを表示 -dN Message-Id Nのキューを削除 -D ローカル/リモートすべてのキューを削除 -c 出力結果をカラー表示 -N Message-Idを表示。ただし、-l、-L、-Rオプションと一緒に指定する必要がある
$ cd /etc/xinet.d
$ vi qmail
service smtp { disable = no flags = REUSE NAMEINARGS socket_type = stream protocol = tcp wait = no user = qmaild server = /usr/sbin/tcpd server_args = /var/qmail/bin/tcp-env -R /var/qmail/bin/qmail-smtpd }
$ cd /etc
$ vi hosts.allow hosts.allowを編集する。
tcp-env : 127. : setenv = RELAYCLIENT tcp-env : 192.168.10.0/24 : setenv = RELAYCLIENT tcp-env : 192.168.20.15 : setenv = RELAYCLIENT tcp-env : ALL
<プログラム> : <接続要求パターン> : <オプション> [ : <オプション> ... ]
#/var/qmail/bin/qmail-showctl
wget http://cmf.ohtanz.com/download/queue-admin.txt
mv queue-admin.txt /var/qmail/bin/queue-admin
chmod 755 /var/qmail/bin/queue-admin
1.queueに溜まっているメールのリストを表示
/var/qmail/bin/queue-admin --ls
2.キュー番号「1111111」「2222222」のメールを表示
/var/qmail/bin/queue-admin --cn 1111111 2222222
3.Toヘッダーに「aaa@ohtanz.com」「bbb@ohtanz.com」が含まれるメールを削除。
/etc/rc.d/init.d/qmail stop
/var/qmail/bin/queue-admin --dt aaa@ohtanz.com bbb@ohtanz.com
/etc/rc.d/init.d/qmail start
4.Subjectヘッダーに「test1」「test2」が含まれるメールを表示
/var/qmail/bin/queue-admin --ss test1 test2
5.メール本文に「test1」「test2」が含まれるメールを表示
/var/qmail/bin/queue-admin --sb test1 test2
new msg [メッセージID] メッセージのログの開始 info msg [メッセージに関する情報] メッセージの情報 starting delivery : [配送ID] 配送開始 status : local 1/10 remote 0/20 状態表示 delivery [配送ID] : success 状態表示 status : local 0/10 remote 0/20 状態表示 end msg : [メッセージID] キューからメッセージを削除し、
Unable_to_chdir_to_maildir
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.
Sorry,_that_domain_isn’t_in_my_list_of_allowed_rcpthosts
Sorry,_no_mailbox_here_by_that_name.
I’m_not_going_try_again;_this_message_has_been_in_the_queue_too_long.
delivery 9938: deferral: Sorry,_message_has_wrong_owner._(#4.3.5)/
Is qmail/bin/qmail-queue setuid and owned by qmailq? To enable qmail to deliver the messages with the wrong owner, check ls -al /var/qmail/queue drwxr-x--- 11 qmailq qmail 4096 2003-09-19 09:41 . drwxr-xr-x 11 root qmail 4096 2003-09-19 17:11 .. drwx------ 2 qmails qmail 4096 2003-09-21 22:48 bounce drwx------ 25 qmails qmail 4096 2003-09-19 09:41 info drwx------ 2 qmailq qmail 4096 2003-09-21 22:48 intd drwx------ 25 qmails qmail 4096 2003-09-19 09:41 local drwxr-x--- 2 qmailq qmail 4096 2003-09-19 09:41 lock drwxr-x--- 25 qmailq qmail 4096 2003-09-19 09:41 mess drwx------ 2 qmailq qmail 4096 2003-09-21 22:48 pid drwx------ 25 qmails qmail 4096 2003-09-19 09:41 remote drwxr-x--- 2 qmailq qmail 4096 2003-09-21 22:48 todo chown qmailq qmail/queue/mess/*/* メ ッセージをqmailqオーナになっていないことが原因
% /usr/local/bin/qmailanalog/zddist < out # メールの遅れの統計 % /usr/local/bin/qmailanalog/zfailures < out # 失敗メールのチェック % /usr/local/bin/qmailanalog/zrecipients < out # 受け取り先の統計 % /usr/local/bin/qmailanalog/zrxdelay < out # 受け取り先の統計(遅れでソート) % /usr/local/bin/qmailanalog/zsuccesses < out # 成功時に理由の統計(意味無し) % /usr/local/bin/qmailanalog/zdeferrals < out # deferral時の理由の統計 % /usr/local/bin/qmailanalog/zoverall < out # 基本統計 % /usr/local/bin/qmailanalog/zrhosts < out # 相手のホストの統計 % /usr/local/bin/qmailanalog/zsenders < out # 差し出し元の統計 % /usr/local/bin/qmailanalog/zsuids < out # 差し出し元のuid の統計
553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)
localhost host.example.jp
$ make
$ make REAL_DAEMON_DIR=/usr/sbin STYLE=-DPROCESS_OPTIONS linux
$ su # cp tcpd /usr/sbin/tcpd
smtp stream tcp nowait qmaild /usr/sbin/tcpd /var/qmail/bin/tcp- env /var/qmail/bin/qmail-smtpd
tcp-env: 1.2.3.4 : setenv = RELAYCLIENT IP addressが 1.2.3.4 の hostからの接続を許可します。 tcp-env: 1.2.3. : setenv = RELAYCLIENT network 1.2.3.0 の networkからの接続を許可します。 tcp-env: .y-min.or.jp : setenv = RELAYCLIENT network *.example.jpからの接続を許可します。
ALL EXCEPT tcp-env: ALL
#1 | /var/qmail/bin/condredirect web@xxxx.jp iftocc #2 /home/****/Mdir/junk