Hello,
A question and a problem:
1) How can I tell if the exim 'queue' is being processed by a queue runner
process? I.e. is it possible to run a command or something? The only way I
can think of is to look in the main log for the queue start/end messages.
2) When we send a message to all the staff or students at the Uni, it is
processed by a director which calls a filter file, and has the system
actions enabled. This filter checks that it is the first deliuvery, and if so
logs the fact that at message is being sent to all staff/students. It then
freezes the message. The postmaster(s) then unfreeze the message and it gets
picked up by a subsequent forwardfile director which sends the message out.
This works fine unless a queue runner is already running. If it is then the
message is just discarded - the log says 'discarded ...D=special_filter'.
If I explicitly send the message using 'exim -M ...' then it works. However,
usually a local program is run which uses the options '-qqffR' and this
fails (produces the discarded message).
The manual says that 'discarded' will be written if a 'seen finish' is seen
in a filter file without any significant deliveries being done. But we don't
have 'seen finish' in the filter, only 'finish'.
The filter looks like:
-------
if first_delivery then
logfile /usr/local/exim/logs/specials.log
if $recipients_count is above 1 then
logwrite "$tod_log: $sender_host_address To: $h_To: Reply-to:...
else
logwrite "$tod_log: $sender_host_address To: ${local_part:$h_To:}...
endif
freeze text "Special list message"
endif
finish
-------
Any ideas as to why the message should be discarded? I have tested this and
can reproduce the problem.
Thanks,
John.
--------------------------------------------------------------------------
John Horne, University of Plymouth, UK Tel: +44 (0)1752 233914
E-mail: jhorne@???
PGP key available from public key servers