$-
Match exactly one token LHS operator
The user part of an address is the part to the left of
the @
in an
address. It is usually a single token (such as
george or
taka).[257] The easiest way to match the user part
of an address is with the $-
operator. For example, the following
rule looks for any username at our local domain, and
dequotes it.
R $- < @ $=w . > $: $(dequote $1 $) < @ $2 . >
Here, the intention is to take any quoted username
(such as “george” or “george+nospam”) and to change
the address using the dequote
database-map type (dequote on page 904). The effect of
this rule on a quoted user workspace, then, might
look like this:
"george"@wash.dc.gov becomes → george@wash.dc.gov "george+nospam"@wash.dc.gov becomes → george+nospam@wash.dc.gov
Because the quotation character is not a token,
"george+nospam"
is seen as a single token and is matched with the
$-
operator.
The -bt
rule-testing mode offers an easy way to determine a
character splits the user part of an address into
more than one token:
%echo '0 george+nospam' | /usr/sbin/sendmail -bt | head −3
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > parse input: george + nospam ← 3 tokens %echo '0 "george+nospam"' | /usr/sbin/sendmail -bt | head −3
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > parse input: "george+nospam" ← 1 token
Note that the $-
operator can be used only on the LHS of rules, and
that the $-
operator can be referenced by a $
digit
operator ...
Get sendmail, 4th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.