# 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