NAME
Mail::Qmail::Queue::Error - Error handling for programs which emulate or use qmail-queue.
SYNOPSIS
use Mail::Qmail::Queue::Error qw(:errcodes :fail);
print "blah\n"
or tempfail QQ_EXIT_WRITEERR,"Write error: $!\n";
if (has_virus($body)) {
permfail QQ_EXIT_REFUSED,"Message refused: it has a virus!!\n";
}
qfail $exit_status,"qmail-queue exited $exit_status\n";
DESCRIPTION
Mail::Qmail::Queue::Error
is designed to simplify error handling for a program which emulates or uses a program implementing the qmail-queue(8) interface. It declares constants for a variety of permanent and temporary error codes, and provides shorthand methods similar to die
that return an appropriate error code. It also provides some methods to look at an error code returned by qmail-queue
and determine whether it is temporary or permanent.
CONSTANTS
These constants are defined in qmail-queue(8). They are mostly self-explanatory.
Permanent Errors
- QQ_EXIT_ADDR_TOO_LONG
- QQ_EXIT_REFUSED
Temporary Errors
- QQ_EXIT_NOMEM
- QQ_EXIT_TIMEOUT
- QQ_EXIT_WRITEERR
- QQ_EXIT_READERR
- QQ_EXIT_BADCONF
- QQ_EXIT_NETERR
- QQ_EXIT_BADQHOME
- QQ_EXIT_BADQUEUEDIR
- QQ_EXIT_BADQUEUEPID
- QQ_EXIT_BADQUEUEMESS
- QQ_EXIT_BADQUEUEINTD
- QQ_EXIT_BADQUEUETODO
- QQ_EXIT_TEMPREFUSE
- QQ_EXIT_CONNTIMEOUT
- QQ_EXIT_NETREJECT
- QQ_EXIT_NETFAIL
- QQ_EXIT_BUG
- QQ_EXIT_BADENVELOPE
FUNCTIONS
- tempfail ( [$failcode,] @message )
-
Exit with a temporary failure code, or
die
if in aneval
. If the first argument is numeric, or if the message starts with a number, that will be used as the exit code. Otherwise, the temporary failure codeQQ_EXIT_BUG
will be used.Note that no checking of the failure code is done; if you pass a code that does not indicate temporary failure, it will be used as is.
- permfail ( [$failcode,] @message )
-
Exit with a permanent failure code, or
die
if in aneval
. If the first argument is numeric, that will be used as the exit code. Otherwise, the permanent failure codeQQ_EXIT_REFUSED
will be used.Note that no checking of the failure code is done; if you pass a code that does not indicate permanent failure, it will be used as is.
- qfail ( [$failcode,] @message )
-
Exit with a failure code, or
die
if in aneval
. If the first argument is numeric, that will be used as the exit code. Otherwise, the temporary failure codeQQ_EXIT_BUG
will be used. - is_tempfail ( $exit_value )
-
Test if the provided value is a temporary exit status.
- is_permfail
-
Test if the provided value is a permanent exit status.
SEE ALSO
qmail-queue(8), Mail::Qmail::Queue::Message, Mail::Qmail::Queue::Receive::Body, Mail::Qmail::Queue::Receive::Envelope, Mail::Qmail::Queue::Send.
COPYRIGHT
Copyright 2006 Scott Gifford.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.