7. FreeBSD 11.1 RELEASE - qmail - キューの確認・削除 qmHandle

 
 qmail ではキューが残ったままになることがあります。  現在のキューの状態を見たり、削除したりするツールに qmHandle があります。
7.1 ports
7.2 qmHandle.conf 設定
7.3 操作
7.4 一気に削除するには

7.1 ports


/usr/ports/mail/qmhandle

7.2 qmHandle.conf 設定

 /usr/local/etc/qmHandle.conf の設定を行いますが、その前に。  qmHandle.conf は開始・停止のシェルスクリプトを設定します。  ここで紹介しているやり方ですと、qmail の起動スクリプトは、 4つあります。  それらを一気に起動・停止するスクリプトを作成しておきます。  仮にそのスクリプトを /root に作成するものとします。  停止のスクリプトを /root/qmailstop.sh という名前で

#!/bin/sh
#
/usr/local/etc/rc.d/qmail-start stop
/usr/local/etc/rc.d/qmail-smtpd stop
/usr/local/etc/rc.d/qmail-smtpd-ssl stop
/usr/local/etc/rc.d/qmail-pop3d stop
/usr/local/etc/rc.d/qmail-pop3d-ssl stop
 開始のスクリプトを /root/qmailstart.sh という名前で

#!/bin/sh
#
/usr/local/etc/rc.d/qmail-start start
/usr/local/etc/rc.d/qmail-smtpd start
/usr/local/etc/rc.d/qmail-smtpd-ssl start
/usr/local/etc/rc.d/qmail-pop3d start
/usr/local/etc/rc.d/qmail-pop3d-ssl start
 と記述して、実行権限をつけておきます。

> chmod +x /root/qmailstop.sh
> chmod +x /root/qmailstart.sh
 その上で、/usr/local/etc/qmHandle.conf

# This is if you have FreeBSD with its qmail package
our ($stopqmail) = '/usr/local/etc/rc.d/qmail.sh stop';
our ($startqmail) = '/usr/local/etc/rc.d/qmail.sh start';
 の箇所を

# This is if you have FreeBSD with its qmail package
our ($stopqmail) = '/root/qmailstop.sh';
our ($startqmail) = '/root/qmailstart.sh';
 と書き換えます。

7.3 操作

 キューの状態を参照するには

> qmHandle [-option]
 で、普段使うのは
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
 予定通り、一件のキューが消えました。

7.4 一気に削除するには

 これはあまりおすすめではありませんが、キューが大量にたまった場合に一気に削除するにはいかのオプションを使用します。

> qmHandle -D
 ローカル・リモートにたまっているすべてのキューを一気に削除してしまうので、必要なものがないかはキューの内容をリダイレクトでファイルに出力するなりしてよく吟味の上、実行すべきです。