General-Purpose Mail Filter
The lowest 19 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.7:
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
poll, etc.) or operation (
Invalid input format. This exception is signaled if input data to a
function are improperly formatted. In version 8.7 it is
message_burst function if its input message is not
formatted according to RFC 934. See Message digest functions.
Invalid CIDR notation. This is signaled by
when its second argument is not a valid CIDR.
Invalid IP address. This is signaled by
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
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
operator) is built at the runtime and the produced string is an
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 …
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
meaning successful return from a function, and
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
This document was generated on January 3, 2019 using makeinfo.Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.