sample-regexp-access.cf   [plain text]


# Sample regexp SMTPD access lookup "table". See regexp_table(5)
# and access(5) for a description of the syntax.
#
# The general format of a table entry is PATTERN RESULT.
#
# The pattern format is `/regexp/flags' or `!/regexp/flags' where regexp
# is a regular expression as found in re_format(7), and flags are
#   i: toggle ignore case (REG_ICASE - default is to ignore case)
#   x: toggle extended expression (REG_EXTENDED - default is extended)
#   m: toggle multiline mode (REG_NEWLINE - default is non-multiline mode)
#
# In order for a line to match, the regexp must match. If the regexp
# is prefixed with !, it must not match.  The first line with a successful
# (non)match wins, terminating processing of the ruleset.
#
# A block of table entries may be "enclosed" by a line with `if
# /pattern/flags' or `if !/pattern/flags' and a line with `endif'.
# This causes the block of table entries to be examined only when
# the pattern produces a successful (non)match. The `if..endif' may
# be nested. There currently is no `else' operator.
#
# The syntax of access table results is described in the Postfix
# access(5) manual page.

# Disallow sender-specified routing. This is a must if you relay mail
#for other domains.
/[%!@].*@/				550 Sender-specified routing rejected

# Postmaster is OK, that way they can talk to us about how to fix their problem.
/^postmaster@/				OK

# Protect your outgoing majordomo exploders
if !/^owner-.*/
/^(.*)-outgoing@(.*)$/			550 Use ${1}@${2} instead
endif