The first 21 exception numbers are reserved for
built-in exceptions. These are declared in module status.mf.
The following table summarizes all built-in exception types implemented by
mailfromd
version 8.14. Exceptions are listed in
lexicographic order.
The called function cannot finish its task because an uncompatible message modification function was called at some point before it. For details, MMQ and dkim_sign.
General database failure. For example, the database cannot be opened. This exception can be signaled by any function that queries any DBM database.
Division by zero.
This exception is emitted by dbinsert
built-in if the
requested key is already present in the database (see dbinsert).
Function reached end of file while reading. See I/O functions, for a description of functions that can signal this exception.
A general failure has occurred. In particular, this exception is
signaled by DNS lookup functions when any permanent failure occurs.
This exception can be signaled by any DNS-related function
(hasmx
, poll
, etc.) or operation (mx matches
).
Invalid input format. This exception is signaled if input data to a
function are improperly formatted. In version 8.14 it is
signaled by message_burst
function if its input message is not
formatted according to RFC 934. See Message digest functions.
Illegal byte sequence. Signaled when a string cannot be converted between character sets because a sequence of bytes was encountered that is not defined for the source character set or cannot be represented in the destination character set.
See MIME decoding, for details.
Invalid CIDR notation. This is signaled by
match_cidr
function when its second argument is not a valid
CIDR.
Invalid IP address. This is signaled by match_cidr
function
when its first argument is not a valid IP address.
Invalid time interval specification. It is signaled by
interval
function if its argument is not a valid time interval
(see time interval specification).
An error occurred during the input-output operation. See I/O functions, for a description of functions that can signal this exception.
A Sendmail macro is undefined.
The argument of a DNS-related function cannot be resolved to host
name or IP address. Currently only ismx
(see ismx) raises
this exception.
The supplied argument is outside the allowed range. This is
signalled, for example, by substring
function (see substring).
Regular expression cannot be compiled. This can happen when a
regular expression (a right-hand argument of a matches
operator) is built at the runtime and the produced string is an
invalid regex.
String-to-number conversion failed. This can be signaled when a string is used in numeric context which cannot be converted to the numeric data type. For example:
set x "10a" if x / 2 …
The if
condition will signal ston_conv
, since ‘10a’
cannot be converted to a number.
A temporary failure has occurred. This can be signaled by DNS-related functions or operations.
The supplied URL is invalid. See Interfaces to Third-Party Programs.
In addition to these, two symbols are defined that are not exception
types in the strict sense of the world, but are provided to make
writing filter scripts more convenient. These are success
,
meaning successful return from a function, and not_found
,
meaning that the required entity (e.g. domain name or email address)
was not found. See Figure 4.1, for an illustration on
how these can be used. For consistency with other exception codes,
these can be spelled as e_success
and e_not_found
.
This document was generated on August 13, 2022 using makeinfo.
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.