NAME
qtool - manipulate sendmail queues
SYNOPSIS
qtool.pl [options] target_directory source [source ...]
qtool.pl [-Q][-d|-b] [options] source [source ...]
DESCRIPTION
Qtool moves the queue files used by sendmail between queues. It uses
the same locking mechanism as sendmail so can be safely used while
sendmail is running. However, it should not be used when queue groups
have been configured to move queue files into directories to which they
do not belong according to the queue group selections made in the
sendmail.cf file. Unless you are absolutely sure you do not interfere
with the queue group selection mechanism, do not move queue files
around.
With no options, qtool will move any queue files as specified by source
into target_directory. Source can be either an individual queue control
file, a queue file id, or a queue directory.
If the -d option is specified, qtool will delete the messages specified
by source instead of moving them.
If the -b option is specified, the selected messages will be bounced by
running sendmail with the -OTimeout.queuereturn=now option.
Options
-b Bounce all of the messages specified by source. The messages
will be bounced immediately. No attempt will be made to deliver
the messages.
-C configfile
Specify the sendmail config file. Defaults to
/etc/mail/sendmail.cf.
-d Delete all of the messages specified by source.
-e perl_expression
Evaluate perl_expression for each queue file as specified by
source. If perl_expression evaluates to true, then that queue
file is moved. See below for more detail on perl_expression.
-Q Operate on quarantined items (queue control file begins with hf
instead of qf).
-s seconds
Move only the queue files specified by source that have a
modification time older than seconds.
Perl Expressions
You can use any valid perl expression. Inside the expression you have
access to a hash that contains many of the fields in the control file
as well as some other data about that queued message. The hash is
called %msg. If a field has multiple values (e.g. 'Recipient'), it will
be returned as an array, otherwise it will be returned as a scalar.
Through %msg, you can access the following variables:
auth AUTH= parameter.
body_type
Body type (8BITMIME, 7BIT, or undefined).
body_last_mod_time
The last time the body was modified since the epoch in seconds.
body_size
The size of the body file in bytes.
content-length
Content-Length: header value (Solaris sendmail only).
controlling_user
The controlling user.
control_last_mod_time
The last time the control file was modified since the epoch in
seconds.
control_size
The size of the control file in bytes.
creation_time
The time when the control file was created.
data_file_name
The data file name (deprecated).
deliver_by
Deliver by flag and deadline for DELIVERBY ESMTP extension.
envid Original envelope id form ESMTP.
error_recipient
The error recipient (deprecated).
final_recipient
Final recipient (for DSNs).
flags Array of characters that can be the following values:
w warning message has been sent
r This is an error response or DSN
8 has 8 bit data in body
b delete Bcc: headers
d envelope has DSN RET= parameter
n don't return body
headers
This is a Perl hash where the keys are rfc822 field names and
the values are rfc822 field values. If a field has only one
value it will be returned as a string. If a field has more than
one value (e.g. 'Received') it will be returned as a list of
strings.
inode_number
The inode number for the data (body) file.
next_delivery_time
Earliest time of next delivery attempt.
num_delivery_attempts
Number of delivery attempts that have been made.
macro Defined macro.
message
Envelope status message.
original_recipient
Original recipient (ORCPT= parameter).
priority
Adjusted priority of message.
quarantine_reason
Quarantine reason for quarantined (held) envelopes.
recipient
Array of character flags followed by colon and recipient name.
Flags:
N Has NOTIFY= parameter.
S Success DSN requested.
F Failure DSN requested.
D Delay DSN requested.
P Primary address (not the result of alias/forward
expansion).
sender Sender
version
Version of control file.
EXAMPLES
qtool.pl q2 q1
Moves all of the queue files in queue q1 to queue q2.
qtool.pl q2 q1/d6CLQh100847
Moves the message with id d6CLQh100847 in queue q1 to queue q2.
qtool.pl q2 q1/qfd6CLQh100847
Moves the message with id d6CLQh100847 in queue q1 to queue q2.
qtool.pl -e '$msg{num_delivery_attempts} == 3' /q2 /q1
Moves all of the queue files that have had three attempted
deliveries from queue q1 to queue q2.
BUGS
In sendmail 8.12, it is possible for a message's queue and data files
(df) to be stored in different queues. In this situation, you must
give qtool the pathname of the queue file, not of the data file (df).
To be safe, never feed qtool the pathname of a data file (df).
SEE ALSO
sendmail(8)
HISTORY
The qtool command appeared in sendmail 8.10.
$Date: 2004/06/28 17:49:41 $