=head1 NAME

pmailq - Postfix Mail Queue manager

=head1 SYNOPSIS

pmailq [I<OPTION>]... [I<COMMAND>]

pmailq B<--help>

=head1 DESCRIPTION

pmailq processes the output of the Postfix mailq command, and can list, parse (machine-readably), or delete queued messages in batches.

They can be selected by size, by queue status, and by pattern matching (with wildcards) on recipient addresses and server error messages.

=head1 COMMANDS

Action to perform on selected entries.

=over 2

=item B<list> (default command)

Show (via I<postqueue -p>) a detailed listing of the selected entries.

=item B<parse>

Show a listing of the selected entries in a machine readable format.

=item B<del>

Delete (via I<postsuper -d>) the selected entries.

=back

=head1 OPTIONS

=over 2

=item B<-e> I<PATTERN>, B<--email>=I<PATTERN>

Select entries in queue with email matching PATTERN (PATTERN accepts wildcards).

=item B<-m> I<PATTERN>, B<--msg>=I<PATTERN>

Select entries in queue with error message matching PATTERN (PATTERN accepts
wildcards).

=item B<-l> I<SIZE>, B<--size-lower>=I<SIZE>

Select entries in queue with size lower than SIZE bytes.

=item B<-u> I<SIZE>, B<--size-upper>=I<SIZE>

Select entries in queue with size upper than SIZE bytes.

=item B<-a>

Select 'active' entries in queue.

=item B<-o>

Select 'on hold' entries in queue.

=item B<--version>

Show program's version number and exit.

=item B<-h>, B<--help>

Show this help message and exit.

=back

=head1 EXAMPLES

=over 1

Example 1: display all the entries in queue sent to an email address matching
"*@example.com*" with a size between 3000 and 3200 bytes in a machine readable
format:

 # pmailq -u 3000 -l 3200 -e "*@example.com" parse

 7E75214643A4|Fri Aug 31|3154|1|0|edgar@example.com
 B0BDE146B640|Thu Aug 30|3199|1|0|paul@example.com
 B587E146B675|Wed Aug 29|3065|0|0|paul@example.com
 CF3C514656E4|Wed Aug 29|3161|0|0|abuse@example.com
      /\         /\       /\  \  \
   queue id     date     size  \  \ on hold (or not)
                                \ active (or not)

Example 2: remove all mails in queue not sent because of a connection time out:

 # pmailq -m "*connection*timed*out" del

 deleting 00CF514616D3 [OK]
 deleting 12D911461924 [OK]
 deleting 269EF1461CA9 [OK]
 deleting 288DF1461CA0 [OK]
 deleting 3B3901460F62 [OK]
 deleting 3AE58147019F [OK]

=back

=head1 SEE ALSO

L<postsuper(1)> privileged queue operations, L<postqueue(1)> mail queue control

=head1 AUTHOR

Emmanuel Bouthenot <kolter@openics.org>

=head1 COPYRIGHT AND LICENSE

Copyright 2007-2011 by Emmanuel Bouthenot <kolter@openics.org>

This program is released under the "do What The Fuck you want to Public Licence"
Version 2, as published by Sam Hocevar.

See http://sam.zoy.org/wtfpl/COPYING for more details.

=cut
