This is the Title of the Book, eMatter Edition
Copyright ?© 2007 O??™Reilly & Associates, Inc. All rights reserved.
18.9 Rule Operator Reference | 679
18.9.16 $-
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 (suchas george or taka).* 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 (?§23.7.5 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
> 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
> 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 on the RHS.
Pages:
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194