- 1. 概要
- 2. インストール
- 3. qmHandle.conf 設定
- 4. 操作
- 5. 一気に削除するには
1. 概要
qmail ではキューが残ったままになることがあります。
現在のキューの状態を見たり、削除したりするツールに qmHandle があります。
2. インストール
cd /usr/ports/mail/qmhandle
make
make install
オプションは、ドキュメントのインストール有無のみなので、どちらでも動作・機能には影響ありません。
3. qmHandle.conf 設定
/usr/local/etc/qmHandle.conf の設定を行いますが、その前に。
qmHandle.conf は開始・停止のシェルスクリプトを設定します。
ここで紹介しているやり方ですと、qmail の起動スクリプトは、 4つあります。
それらを一気に起動・停止するスクリプトを作成しておきます。
仮にそのスクリプトを /root/sh に作成するものとします。
それぞれのスクリプトを
/root/sh/qmailstart.sh
/root/sh/qmailstop.sh
とします。
/root/sh/qmailstop.sh は、以下のように記述します。
#!/bin/sh
#
service qmail-start stop
service qmail-smtpd stop
service qmail-smtpd-ssl stop
service qmail-pop3d stop
service qmail-pop3d-ssl stop
/root/sh/qmailstart.sh は、以下のように記述します。
#!/bin/sh
#
service qmail-start start
service qmail-smtpd start
service qmail-smtpd-ssl start
service qmail-pop3d start
service qmail-pop3d-ssl start
と記述して、実行権限をつけておきます。
chmod -v +x /root/sh/qmail*.sh
その上で、/usr/local/etc/qmHandle.conf の
# This is if you have FreeBSD with its qmail package
our ($stopqmail) = 'service qmail.sh stop';
our ($startqmail) = 'service qmail.sh start';
の箇所を
# This is if you have FreeBSD with its qmail package
our ($stopqmail) = '/root/sh/qmailstop.sh';
our ($startqmail) = '/root/sh/qmailstart.sh';
と書き換えます。
4. 操作
キューの状態を参照するには
qmHandle [-option]
で、普段使うのは
オプション | 意味 |
-l | ローカル・リモート双方のキューを参照 |
-L | ローカル(local)キューを参照 |
-R | リモート(remote)キューを参照 |
-dN | キュー番号 N を削除 |
-D | 全キューを削除 |
のいずれかになります。
試しにわたしのサーバで動作させてみます。
> qmHandle -l
3603593 (22, 22/3603593)
Return-path:
From: MAILER-DAEMON@hogehoge.ne.jp
To: adminuketr@praiseband-glow.info
Subject: failure notice
Date: 3 Jun 2015 14:30:53 +0900
Size: 5978 bytes
・・・
3603592 (21, 21/3603592)
Return-path:
From: MAILER-DAEMON@hogehoge.ne.jp
To: infouzlyk@speechi.net
Subject: failure notice
Date: 4 Jun 2015 00:48:40 +0900
Size: 5878 bytes
Total messages: 6
Messages with local recipients: 0
Messages with remote recipients: 6
Messages with bounces: 0
Messages in preprocess: 0
これをぶったたいたのが 2015年6月4日 で、恐ろしく古いのはありませんでしたが、ここ 5日間のキューが残っています。宛先不明をサーバが返そうとしたら、返信先宛先不明でキューに残っているものと思われます。
キュー番号 3603583 を削除してみます。
> qmHandle -d3603583
Calling system script to terminate qmail...
Stopping qmailstart.
Stopping qmailsmtpd.
Stopping qmailsubmission.
Stopping qmailpop3d.
Deleting message 3603583...
Deleted 1 messages from queue
Restarting qmail... Starting qmail-start.
Starting qmailsmtpd.
Starting qmailsmtpd.
Starting qmaili-pop3d.
done (hopefully).
> qmHandle -l
3603603 (9, 9/3603603)
Return-path:
From: MAILER-DAEMON@ns.sing.ne.jp
To: adminwcead@mouries.net
Subject: failure notice
Date: 30 May 2015 10:43:13 +0900
Size: 5969 bytes
・・・
Total messages: 5
Messages with local recipients: 0
Messages with remote recipients: 5
Messages with bounces: 0
Messages in preprocess: 0
予定通り、一件のキューが消えました。
5. 一気に削除するには
これはあまりおすすめではありませんが、キューが大量にたまった場合に一気に削除するにはいかのオプションを使用します。
> qmHandle -D
ローカル・リモートにたまっているすべてのキューを一気に削除してしまうので、必要なものがないかはキューの内容をリダイレクトでファイルに出力するなりしてよく吟味の上、実行すべきです。
|