Lines Matching refs:R
185 # Hosts for which relaying is permitted ($=R)
218 # ($R has precedence for unqualified names if `FEATURE(stickyhost)' is used)
747 R$@ $@ <@>
750 R$* $: $1 <@> mark addresses
751 R$* < $* > $* <@> $: $1 < $2 > $3 unmark <addr>
752 R@ $* <@> $: @ $1 unmark @host:...
753 R$* [ IPv6 : $+ ] <@> $: $1 [ IPv6 : $2 ] unmark IPv6 addr
754 R$* :: $* <@> $: $1 :: $2 unmark node::addr
755 R:`include': $* <@> $: :`include': $1 unmark :`include':...
756 R$* : $* [ $* ] $: $1 : $2 [ $3 ] <@> remark if leading colon
757 R$* : $* <@> $: $2 strip colon if marked
758 R$* <@> $: $1 unmark
759 R$* ; $1 strip trailing semi
760 R$* < $+ :; > $* $@ $2 :; <@> catch <list:;>
761 R$* < $* ; > $1 < $2 > bogus bracketed semi
764 R$@ $@ :; <@>
767 R$* $: < $1 > housekeeping <>
768 R$+ < $* > < $2 > strip excess on left
769 R< $* > $+ < $1 > strip excess on right
770 R<> $@ < @ > MAIL FROM:<> case
771 R< $+ > $: $1 remove housekeeping <>
775 R@ $+ , $+ @ $1 : $2 change all "," to ":"
780 `R@ [$+] : $+ $@ $>Canonify2 < @ [$1] > : $2 handle <route-addr>')
781 R@ $+ : $+ $@ $>Canonify2 < @$1 > : $2 handle <route-addr>
784 R@ $+ , $+ $2
786 `R@ [ $* ] : $+ $2')
787 R@ $+ : $+ $2
791 R $+ : $* ; @ $+ $@ $>Canonify2 $1 : $2 ; < @ $3 > list syntax
792 R $+ : $* ; $@ $1 : $2; list syntax
795 R$+ @ $+ $: $1 < @ $2 > focus on domain
796 R$+ < $+ @ $+ > $1 $2 < @ $3 > move gaze right
797 R$+ < @ $+ > $@ $>Canonify2 $1 < @ $2 > already canonical
801 dnl R$* < @ $~[ $* : $* > $* $1 < @ $2 $3 > $4 nix colons in addrs
805 R$- ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > resolve uucp names
806 R$+ . $- ! $+ $@ $>Canonify2 $3 < @ $1 . $2 > domain uucps
807 R$+ ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > uucp subdomains
811 R$- :: $+ $@ $>Canonify2 $2 < @ $1 .DECNET > resolve DECnet names
812 R$- . $- :: $+ $@ $>Canonify2 $3 < @ $1.$2 .DECNET > numeric DECnet addr
816 R$* % $* $1 @ $2 First make them all @s.
817 R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last.
818 R$* @ $* $@ $>Canonify2 $1 < @ $2 > Insert < > and finish
821 R$* $@ $>Canonify2 $1
831 R$* < @ localhost > $* $: $1 < @ $j . > $2 no domain at all
832 R$* < @ localhost . $m > $* $: $1 < @ $j . > $2 local domain
834 `R$* < @ localhost . UUCP > $* $: $1 < @ $j . > $2 .UUCP domain')
837 R$* < @ [ $+ ] > $* $: $1 < @@ [ $2 ] > $3 mark [addr]
838 R$* < @@ $=w > $* $: $1 < @ $j . > $3 self-literal
839 R$* < @@ $+ > $* $@ $1 < @ $2 > $3 canon IP addr
843 R$* < @ $+ > $* $: $1 < @ $(domaintable $2 $) > $3', `dnl')
849 R$* < @ $+ .BITNET > $* $: $1 < @ $(bitdomain $2 $: $2.BITNET $) > $3', `dnl')
853 R$* < @ $+ .UUCP > $* $: $1 < @ $(uudomain $2 $: $2.UUCP $) > $3', `dnl')
858 R$* < @ $+ . UUCP > $* $@ $1 < @ $2 . UUCP . > $3',
861 `R$* < @ $=U . UUCP > $* $@ $1 < @ $2 . UUCP . > $3', `dnl')
863 `R$* < @ $=V . UUCP > $* $@ $1 < @ $2 . UUCP . > $3', `dnl')
865 `R$* < @ $=W . UUCP > $* $@ $1 < @ $2 . UUCP . > $3', `dnl')
867 `R$* < @ $=X . UUCP > $* $@ $1 < @ $2 . UUCP . > $3', `dnl')
869 `R$* < @ $=Y . UUCP > $* $@ $1 < @ $2 . UUCP . > $3', `dnl')
873 R$* < @ $+ . UUCP > $* $: $1 < @ $[ $2 $] . UUCP . > $3
874 R$* < @ $+ . . UUCP . > $* $@ $1 < @ $2 . > $3')
877 R$* < @ $* $=P > $* $: $1 < @ $2 $3 . > $4
881 R$* < @ $* $~P > $* $: $&{daemon_flags} $| $1 < @ $2 $3 > $4
891 R$* $| $* < @ $* $={Canonify} > $* $: $2 < @ $[ $3 $4 $] > $5
893 R$* c $* $| $* < @ $* > $* $: $3 < @ $[ $4 $] > $5
895 R$* $| $* < @ $+ . > $* $: $2 < @ $3 . > $4
897 R$* $| $* < @ $+.$+ > $* $: $2 < @ $3.$4 . > $5
903 R$* $| $* < @ $* > $* $: $2 < @ $[ $3 $] > $4', `dnl')', `dnl
908 R$* CC $* $| $* < @ $+.$+ > $* $: $3 < @ $4.$5 . > $6
909 R$* CC $* $| $* $: $3
912 R$* $| $* < @ $* $~P > $* $: $&{addr_type} $| $2 < @ $3 $4 > $5
913 R$* h $* $| $* < @ $+.$+ > $* $: $3 < @ $4.$5 . > $6
914 R$* h $* $| $* $: $3', `dnl')
916 R$* $| $* < @ $* > $* $: $2 < @ $[ $3 $] > $4')
918 R$* $| $* $: $2
921 R$* < @ $=w > $* $: $1 < @ $2 . > $3
923 `R$* < @ $* $=M > $* $: $1 < @ $2 $3 . > $4',
924 `R$* < @ $=M > $* $: $1 < @ $2 . > $3')
928 `R$* < @ $* $={VirtHost} > $* $: $1 < @ $2 $3 . > $4',
929 `R$* < @ $={VirtHost} > $* $: $1 < @ $2 . > $3')',
934 `R$* < @ $* $=G > $* $: $1 < @ $2 $3 . > $4',
935 `R$* < @ $=G > $* $: $1 < @ $2 . > $3')',
939 R$* < @ $* . . > $* $1 < @ $2 . > $3
947 R$+ :; <@> $@ $1 : handle <list:;>
948 R$* <@> $@ handle <> and list:;
951 R$* < @ $+ . > $* $1 < @ $2 > $3
954 R$* < @ *LOCAL* > $* $1 < @ $j > $2
957 R$* < $+ > $* $1 $2 $3 defocus
958 R@ $+ : @ $+ : $+ @ $1 , @ $2 : $3 <route-addr> canonical
959 R@ $* $@ @ $1 ... and exit
963 R$+ @ $- . UUCP $2!$1 u@h.UUCP => h!u')
967 R$+ @ $+ . DECNET $2 :: $1 u@h.DECNET => h::u',
970 R$+ % $=w @ $=w $1 @ $2 u%host@host => u@host
980 R$* $: $>canonify $1
981 R$* $@ $>parse $1
990 R$* $: $>Parse0 $1 initial parsing
991 R<@> $#_LOCAL_ $: <@> special case error msgs
992 R$* $: $>ParseLocal $1 handle local hacks
993 R$* $: $>Parse1 $1 final parsing
1003 R<@> $@ <@> special case error msgs
1004 R$* : $* ; <@> $#error $@ 5.1.3 $: "_CODE553 List:; syntax illegal for recipient addresses"
1005 R@ <@ $* > < @ $1 > catch "@@host" bogosity
1006 R<@ $+> $#error $@ 5.1.3 $: "_CODE553 User address required"
1007 R$+ <@> $#error $@ 5.1.3 $: "_CODE553 Hostname required"
1008 R$* $: <> $1
1010 R<> $* < @ [ $* ] : $+ > $* $1 < @ [ $2 ] : $3 > $4
1011 R<> $* < @ [ $* ] , $+ > $* $1 < @ [ $2 ] , $3 > $4
1013 R<> $* < @ [ $* ] $+ > $* $#error $@ 5.1.2 $: "_CODE553 Invalid address"
1014 R<> $* < @ [ $+ ] > $* $1 < @ [ $2 ] > $3
1015 R<> $* <$* : $* > $* $#error $@ 5.1.3 $: "_CODE553 Colon illegal in host name part"
1016 R<> $* $1
1017 R$* < @ . $* > $* $#error $@ 5.1.2 $: "_CODE553 Invalid host name"
1018 R$* < @ $* .. $* > $* $#error $@ 5.1.2 $: "_CODE553 Invalid host name"
1020 R$* < @ $* @ > $* $#error $@ 5.1.2 $: "_CODE553 Invalid route address"
1022 R$* @ $* < @ $* > $* $#error $@ 5.1.3 $: "_CODE553 Invalid route address"
1024 R$* , $~O $* $#error $@ 5.1.3 $: "_CODE553 Invalid route address"
1027 R$* . < @ $* > $* $#error $@ 5.1.2 $: "_CODE553 Local part must not end with a dot"
1028 R. $* < @ $* > $* $#error $@ 5.1.2 $: "_CODE553 Local part must not begin with a dot"
1032 R$* < @ > $* $@ $>Parse0 $>canonify $1 user@ => user
1033 R< @ $=w . > : $* $@ $>Parse0 $>canonify $2 @here:... -> ...
1034 R$- < @ $=w . > $: $(dequote $1 $) < @ $2 . > dequote "foo"@here
1035 R< @ $+ > $#error $@ 5.1.3 $: "_CODE553 User address required"
1036 R$* $=O $* < @ $=w . > $@ $>Parse0 $>canonify $1 $2 $3 ...@here -> ...
1037 R$- $: $(dequote $1 $) < @ *LOCAL* > dequote "foo"
1038 R< @ *LOCAL* > $#error $@ 5.1.3 $: "_CODE553 User address required"
1039 R$* $=O $* < @ *LOCAL* >
1041 R$* < @ *LOCAL* > $: $1
1050 R$+ < @ $={LDAPRoute} . > $: $>LDAPExpand <$1 < @ $2 . >> <$1 @ $2> <>
1051 R$+ < @ $={LDAPRouteEquiv} . > $: $>LDAPExpand <$1 < @ $2 . >> <$1 @ $M> <>',
1057 R$* < @ [ $+ ] > $* $: $>ParseLocal $1 < @ [ $2 ] > $3 numeric internet spec
1058 R$* < @ [ $+ ] > $* $: $1 < @ [ $2 ] : $S > $3 Add smart host to path
1059 R$* < @ [ $+ ] : > $* $#_SMTP_ $@ [$2] $: $1 < @ [$2] > $3 no smarthost: send
1060 R$* < @ [ $+ ] : $- : $*> $* $#$3 $@ $4 $: $1 < @ [$2] > $5 smarthost with mailer
1061 R$* < @ [ $+ ] : $+ > $* $#_SMTP_ $@ $3 $: $1 < @ [$2] > $4 smarthost without mailer',
1072 R$+ < @ $+ > $: $(macro {RecipientAddress} $) $1 < @ $2 >
1073 R$+ < @ $+ > $: <?> $1 < @ $2 > $| $>final $1 < @ $2 >
1074 R<?> $+ $| $+ $: $1 $(macro {RecipientAddress} $@ $2 $)
1075 R<?> $+ $| $* $: $1',
1077 R$+ $: <!> $1 Mark for lookup
1080 `R<!> $+ < @ $* $={VirtHost} . > $: < $(virtuser $1 @ $2 $3 $@ $1 $: @ $) > $1 < @ $2 $3 . >',
1081 `R<!> $+ < @ $={VirtHost} . > $: < $(virtuser $1 @ $2 $@ $1 $: @ $) > $1 < @ $2 . >')
1083 R<!> $+ < @ $=w . > $: < $(virtuser $1 @ $2 $@ $1 $: @ $) > $1 < @ $2 . >
1086 R<@> $+ + $+ < @ $* . >
1089 R<@> $+ + $* < @ $* . >
1092 R<@> $+ + $* < @ $* . >
1096 R<@> $+ + $+ < @ $+ . > $: < $(virtuser + + @ $3 $@ $1 $@ $2 $@ +$2 $: @ $) > $1 + $2 < @ $3 . >
1098 R<@> $+ + $* < @ $+ . > $: < $(virtuser + * @ $3 $@ $1 $@ $2 $@ +$2 $: @ $) > $1 + $2 < @ $3 . >
1101 R<@> $+ + $* < @ $+ . > $: < $(virtuser @ $3 $@ $1 $@ $2 $@ +$2 $: ! $) > $1 + $2 < @ $3 . >
1103 R<@> $+ < @ $+ . > $: < $(virtuser @ $2 $@ $1 $: @ $) > $1 < @ $2 . >
1105 R<@> $+ $: $1
1107 R<!> $+ $: $1
1108 R< error : $-.$-.$- : $+ > $* $#error $@ $1.$2.$3 $: $4
1109 R< error : $- $+ > $* $#error $@ $(dequote $1 $) $: $2
1112 R< $+ > $+ < @ $+ > $: < $1 > $2 < @ $3 > $| $1
1114 R< $+ > $+ < @ $+ > $| $&{RecipientAddress} $: $>ParseLocal $>Parse0 $>canonify $1
1115 R< $+ > $+ < @ $+ > $| $* $: < $1 > $2 < @ $3 >
1120 `R< $+ > $+ < @ $+ > $: $>ParseLocal $>Parse0 $>canonify $1',
1121 `R< $+ > $+ < @ $+ > $: $>Recurse $1')
1126 R$+ . USENET < @ $=w . > $#usenet $@ usenet $: $1 handle usenet specially', `dnl')
1130 `R$+ < @ $=w . > $: < $H > $1 < @ $2 . > first try hub
1131 R< $+ > $+ < $+ > $>MailerToTriple < $1 > $2 < $3 > yep ....
1133 R< > $+ + $* < $+ > $#_LOCAL_ $: $1 + $2 plussed name?
1134 R< > $+ < $+ > $#_LOCAL_ $: @ $1 nope, local address',
1135 `R$=L < @ $=w . > $#_LOCAL_ $: @ $1 special local names
1136 R$+ < @ $=w . > $#_LOCAL_ $: $1 regular local name')
1140 R$* <@ $+ > $* $: < $2 > $1 < @ $2 > $3 extract host name
1141 R< $+ . > $* $: < $1 > $2 strip trailing dot
1142 R< $+ > $* $: < $(mailertable $1 $) > $2 lookup
1144 R< $~[ : $* > $* $>MailerToTriple < $1 : $2 > $3 check -- resolved?
1145 R< $+ > $* $: $>Mailertable <$1> $2 try domain',
1152 `R$* < @ $=V . UUCP . > $* $: $>MailerToTriple < $V > $1 <@$2.UUCP.> $3',
1155 `R$* < @ $=W . UUCP . > $* $: $>MailerToTriple < $W > $1 <@$2.UUCP.> $3',
1158 `R$* < @ $=X . UUCP . > $* $: $>MailerToTriple < $X > $1 <@$2.UUCP.> $3',
1163 `R$*<@$+.BITNET.>$* $: $>MailerToTriple < $B > $1 <@$2.BITNET.> $3 user@host.BITNET',
1166 `R$*<@$+.DECNET.>$* $: $>MailerToTriple < $C > $1 <@$2.DECNET.> $3 user@host.DECNET',
1169 `R$+ < @ POP. > $#pop $: $1 user@POP',
1172 `R$+ < @ $+ .FAX. > $#fax $@ $2 $: $1 user@host.FAX',
1174 `R$*<@$+.FAX.>$* $: $>MailerToTriple < $F > $1 <@$2.FAX.> $3 user@host.FAX',
1179 R$*<@$*.UUCP.>$* $: $>MailerToTriple < $Y > $1 <@$2.UUCP.> $3 uucp mail',
1182 R$* < @ $+ .UUCP. > $* $#_UUCP_ $@ $2 $: $1 < @ $2 .UUCP. > $3 user@host.UUCP',
1186 R$+ . USENET $#usenet $@ usenet $: $1',
1194 R$* < @ $* > $* $: $>MailerToTriple < $S > $1 < @ $2 > $3 glue on smarthost name
1198 `R$* < @$* > $* $#_SMTP_ $@ $2 $: $1 < @ $2 > $3 user@host.domain',
1199 `R$* < @$* > $* $#error $@ 5.1.2 $: "_CODE553 Unrecognized host name " $2')
1202 R$=L $#_LOCAL_ $: @ $1 special local names
1203 R$+ $#_LOCAL_ $: $1 regular local names
1211 R$+ $: $1 $| $>"Local_localaddr" $1
1212 R$+ $| $#ok $@ $1 no change
1213 R$+ $| $#$* $#$2
1214 R$+ $| $* $: $1
1218 R$+ $: $1 $| $&h $| $&{Host} check h and {Host}
1219 R$+ $| $| $: $(macro {Host} $@ $) $1 no h or {Host}
1220 R$+ $| $| $+ $: $1 h not set, {Host} set
1221 R$+ $| +$* $| $* $: $1 h is +detail, {Host} set
1222 R$+ $| $* @ $+ $| $* $: $(macro {Host} $@ @$3 $) $1 set {Host} to host in h
1223 R$+ $| $+ $| $* $: $(macro {Host} $@ @$2 $) $1 set {Host} to h
1228 R$+ $: $(macro {LocalAddrHost} $) $1
1229 R$+ @ $+ $: $(macro {LocalAddrHost} $@ @ $2 $) $1')
1233 R$+ + * $#_LOCAL_ $@ $&h $: $1`'ifdef(`_FFR_5_', ` $&{LocalAddrHost}')
1234 R$+ + $* $#_LOCAL_ $@ + $2 $: $1 + *`'ifdef(`_FFR_5_', ` $&{LocalAddrHost}')
1237 R$+ $: <> $1
1242 R< > $+ + $* $: < ? $L > <+ $2> $(user $1 $) look up user+
1243 R< > $+ $: < ? $L > < > $(user $1 $) look up user
1244 R< ? $* > < $* > $+ <> $: < > $3 $2 found; strip $L
1245 R< ? $* > < $* > $+ $: < $1 > $3 $2 not found', `
1246 R< > $+ $: < $L > $(user $1 $) look up user
1247 R< $* > $+ <> $: < > $2 found; strip $L')
1249 R< $+ > $+ $: < $1 > $2 $&{Host}')
1253 R< > $+ $: < $H > $1 try hub', `dnl')
1255 R< > $+ $: < $R > $1 try relay', `dnl')
1257 R< > $+ $@ $1', `dnl
1258 R< > $+ $: < > < $1 <> $&h > nope, restore +detail
1260 R< > < $+ @ $+ <> + $* > $: < > < $1 + $3 @ $2 > check whether +detail')
1261 R< > < $+ <> + $* > $: < > < $1 + $2 > check whether +detail
1262 R< > < $+ <> $* > $: < > < $1 > else discard
1263 R< > < $+ + $* > $* < > < $1 > + $2 $3 find the user part
1264 R< > < $+ > + $* $#_LOCAL_ $@ $2 $: @ $1`'ifdef(`_FFR_5_', ` $&{LocalAddrHost}') strip the extra +
1265 R< > < $+ > $@ $1 no +detail
1266 R$+ $: $1 <> $&h add +detail back in
1268 R$+ @ $+ <> + $* $: $1 + $3 @ $2 check whether +detail')
1269 R$+ <> + $* $: $1 + $2 check whether +detail
1270 R$+ <> $* $: $1 else discard')
1271 R< local : $* > $* $: $>MailerToTriple < local : $1 > $2 no host extension
1272 R< error : $* > $* $: $>MailerToTriple < error : $1 > $2 no host extension
1275 R< $~[ : $+ > $+ @ $+ $: $>MailerToTriple < $1 : $2 > $3 < @ $4 >')
1276 R< $~[ : $+ > $+ $: $>MailerToTriple < $1 : $2 > $3 < @ $2 >
1278 R< $+ > $+ @ $+ $@ $>MailerToTriple < $1 > $2 < @ $3 >')
1279 R< $+ > $+ $@ $>MailerToTriple < $1 > $2 < @ $1 >
1289 R< $+ > $* $: < $(mailertable $1 $) > $2 lookup
1290 R< $~[ : $* > $* $>MailerToTriple < $1 : $2 > $3 check resolved?
1291 R< $+ > $* $: < $1 > $>Mailertable <$1> $2 try domain
1292 R< $+ > $#$* $#$2 found
1293 R< $+ > $* $#_RELAY_ $@ $1 $: $2 not found, direct relay',
1304 R$* <$- . $+ > $* $: $1$2 < $(mailertable .$3 $@ $1$2 $@ $2 $) > $4
1306 R$* <$~[ : $* > $* $>MailerToTriple < $2 : $3 > $4 check -- resolved?
1307 R$* < . $+ > $* $@ $>Mailertable $1 . <$2> $3 no -- strip & try again
1309 R$* < $* > $* $: < $(mailertable . $@ $1$2 $) > $3 try "."
1310 R< $~[ : $* > $* $>MailerToTriple < $1 : $2 > $3 "." found?
1312 R< $* > $* $@ $2 no mailertable match',
1329 R< > $* $@ $1 strip off null relay
1330 R< error : $-.$-.$- : $+ > $* $#error $@ $1.$2.$3 $: $4
1331 R< error : $- : $+ > $* $#error $@ $(dequote $1 $) $: $2
1332 R< error : $+ > $* $#error $: $1
1333 R< local : $* > $* $>CanonLocal < $1 > $2
1335 R< $~[ : $+ @ $+ > $*<$*>$* $# $1 $@ $3 $: $2<@$3> use literal user
1336 R< $~[ : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer
1337 R< $=w > $* $@ $2 delete local host
1338 R< $+ > $* $#_RELAY_ $@ $1 $: $2 use unqualified mailer
1354 R< $* > < @ $+ > : $+ $@ $>Recurse $3
1355 R< $* > $+ $=O $+ < @ $+ > $@ $>Recurse $2 $3 $4
1358 R< $* > $* < @ $* . > $: < $1 > $2 < @ $3 >
1361 R< > $* < @ $* > $* $#_LOCAL_ $@ $1@$2 $: $1
1362 R< > $+ $#_LOCAL_ $@ $1 $: $1
1365 R< $+ @ $+ > $* < @ $* > $: < $1 > $3 < @ $4 >
1368 R< $+ > $* <@ $* > $* $#_LOCAL_ $@ $2@$3 $: $1
1369 R< $+ > $* $#_LOCAL_ $@ $2 $: $1
1381 `R$+ < @ $* $=G . > $: < $1@$2$3 > $1 < @ $2$3 . > @ mark',
1382 `R$+ < @ $=G . > $: < $1@$2 > $1 < @ $2 . > @ mark')
1383 R$+ < @ *LOCAL* > $: < $1@$j > $1 < @ *LOCAL* > @ mark
1388 R< $+ > $+ < $* > @ $: < $(generics $1 $: @ $1 $) > $2 < $3 >
1391 R<@$+ + $* @ $+> $+ < @ $+ >
1393 R<@$+ + $* @ $+> $+ < @ $+ >
1396 R<@$+ > $+ < @ $+ > $: < > $2 < @ $3 >
1398 R< > $+ < @ $+ . > $: < $(generics @$2 $@ $1 $: $) > $1 < @ $2 . >
1401 R< > $+ < @ $+ > $: < $(generics $1 $: $) > $1 < @ $2 >
1402 R< > $+ + $* < @ $+ > $: < $(generics $1+* $@ $2 $: $) > $1 + $2 < @ $3 >
1403 R< > $+ + $* < @ $+ > $: < $(generics $1 $: $) > $1 + $2 < @ $3 >
1404 R< $* @ $* > $* < $* > $@ $>canonify $1 @ $2 found qualified
1405 R< $+ > $* < $* > $: $>canonify $1 @ *LOCAL* found unqualified
1406 R< > $* $: $1 not found',
1410 R$* < @ $* $=N . > $@ $1 < @ $2 $3 . >
1414 R$=E < @ *LOCAL* > $@ $1 < @ $j . > leave exposed
1416 `R$=E < @ $* $=M . > $@ $1 < @ $2 $3 . >',
1417 `R$=E < @ $=M . > $@ $1 < @ $2 . >')
1419 `R$=E < @ $=w . > $@ $1 < @ $2 . >')
1423 `R$* < @ $* $=M . > $* $: $1 < @ $2 $3 . @ $M > $4 convert masqueraded doms',
1424 `R$* < @ $=M . > $* $: $1 < @ $2 . @ $M > $3 convert masqueraded doms')
1426 `R$* < @ $=w . > $* $: $1 < @ $2 . @ $M > $3')
1427 R$* < @ *LOCAL* > $* $: $1 < @ $j . @ $M > $2
1428 R$* < @ $+ @ > $* $: $1 < @ $2 > $3 $M is null
1429 R$* < @ $+ @ $+ > $* $: $1 < @ $3 . > $4 $M is not null
1432 R$* < @ *LOCAL* > $@ $1 < @ $j . >')
1440 `R$+ $@ $>MasqHdr $1',
1441 `R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2')
1469 R<$+><$+><$*> $: <$(ldapmra $2 $: $)> <$(ldapmh $2 $: $)> <$1> <$2> <$3>
1472 R<$* <TMPF>> <$*> <$+> <$+> <$*> $: $&{opMode} $| TMPF <$&{addr_type}> $| $3
1473 R<$*> <$* <TMPF>> <$+> <$+> <$*> $: $&{opMode} $| TMPF <$&{addr_type}> $| $3
1476 R$={SMTPOpModes} $| TMPF <e r> $| $+ $#error $@ 4.3.0 $: "451 Temporary system failure. Please try again later."')
1478 R$* $| TMPF <$*> $| $+ $@ $3
1483 R<$+@$+> <$=w> <$+> <$+> <$*> $@ $>Parse0 $>canonify $1 $6 @ $2
1484 R<$+@$+> <> <$+> <$+> <$*> $@ $>Parse0 $>canonify $1 $5 @ $2')
1485 R<$+> <$=w> <$+> <$+> <$*> $@ $>Parse0 $>canonify $1
1486 R<$+> <> <$+> <$+> <$*> $@ $>Parse0 $>canonify $1
1494 R<$+@$+> <$+> <$+> <$+> <$*> $>LDAPMailertable <$3> $>canonify $1 $6 @ $2',
1495 `R<$+@$+> <$+> <$+> <$+> <$*> $#_RELAY_ $@ $3 $: $>canonify $1 $6 @ $2')')
1498 R<$+> <$+> <$+> <$+> <$*> $>LDAPMailertable <$2> $>canonify $1',
1499 `R<$+> <$+> <$+> <$+> <$*> $#_RELAY_ $@ $2 $: $>canonify $1')
1503 R<> <$=w> <$+> <$+> <$*> $@ $2
1510 R<> <$+> <$+> <$+> <$*> $>LDAPMailertable <$1> $2',
1511 `R<> <$+> <$+> <$+> <$*> $#_RELAY_ $@ $1 $: $2')
1516 R<> <> <$+> <$+ + $* @ $+> <> $@ $>LDAPExpand <$1> <$2 @ $4> <+$3>')dnl
1520 R<> <> <$+> <$+ @ $+> <$*> $: <> <> <$1> <@ $3> <$4>', `
1524 R<> <> <$+> <$+ + $* @ $+> <> $@ $>LDAPExpand <$1> <@ $4> <+$3>')
1525 R<> <> <$+> <$+ @ $+> <$*> $@ $>LDAPExpand <$1> <@ $3> <$4>')
1530 R<> <> <$+> <@ $+> <$*> $: <?> < $&{addr_type} > < $1 >
1532 R<?> <e r> <$+> $#error $@ nouser $: "550 User unknown"
1535 R<?> <e s> <$+> $#error $@ nouser $: "550 User unknown"')
1536 R<?> <$*> <$+> $@ $2',
1539 R<> <> <$+> <@ $+> <$*> $@ $1')',
1564 R<$*> <$+> <$- $-> <$*> $: < $(access $4`'_TAG_DELIM_`'$1 $: ? $) > <$1> <$2> <$3 $4> <$5>
1568 R<?> <$+> <$+> <+ $-> <$*> $: < $(access $1 $: ? $) > <$1> <$2> <+ $3> <$4>
1573 R<?> <$+.$+> <$+> <$- $-> <$*> $: < $(access $5`'_TAG_DELIM_`'.$2 $: ? $) > <$1.$2> <$3> <$4 $5> <$6>
1575 R<?> <$+.$+> <$+> <+ $-> <$*> $: < $(access .$2 $: ? $) > <$1.$2> <$3> <+ $4> <$5>', `dnl')
1579 R<SKIP> <$+> <$+> <$- $-> <$*> $@ <$2> <$5>', `dnl')
1582 R<?> <[$+.$-]> <$+> <$- $-> <$*> $@ $>D <[$1]> <$3> <$4 $5> <$6>
1587 R<?> <[$+::$-]> <$+> <$- $-> <$*> $: $>D <[$1]> <$3> <$4 $5> <$6>
1588 R<?> <[$+:$-]> <$+> <$- $-> <$*> $: $>D <[$1]> <$3> <$4 $5> <$6>')
1591 R<?> <$+.$+> <$+> <$- $-> <$*> $@ $>D <$2> <$3> <$4 $5> <$6>
1594 R<?> <$+> <$+> <! $-> <$*> $: < $(access $3`'_TAG_DELIM_ $: ? $) > <$1> <$2> <! $3> <$4>', `dnl')
1597 R<?> <$+> <$+> <$- $-> <$*> $@ <$2> <$5>
1600 R<$* _ATMPF_> <$+> <$+> <$- $-> <$*> $@ <_ATMPF_> <$6>', `dnl')
1603 R<$*> <$+> <$+> <$- $-> <$*> $@ <$1> <$6>
1623 R<$+> <$+> <$- $-> <$*> $: < $(access $4`'_TAG_DELIM_`'$1 $: ? $) > <$1> <$2> <$3 $4> <$5>
1626 R<?> <$+> <$+> <+ $-> <$*> $: < $(access $1 $: ? $) > <$1> <$2> <+ $3> <$4>
1631 R<SKIP> <$+> <$+> <$- $-> <$*> $@ <$2> <$5>', `dnl')
1635 R<?> <$+::$-> <$+> <$- $-> <$*> $@ $>A <$1> <$3> <$4 $5> <$6>
1636 R<?> <$+:$-> <$+> <$- $-> <$*> $@ $>A <$1> <$3> <$4 $5> <$6>')
1639 R<?> <$+.$-> <$+> <$- $-> <$*> $@ $>A <$1> <$3> <$4 $5> <$6>
1642 R<?> <$+> <$+> <$- $-> <$*> $@ <$2> <$5>
1645 R<$* _ATMPF_> <$+> <$+> <$- $-> <$*> $@ <_ATMPF_> <$6>', `dnl')
1648 R<$*> <$+> <$+> <$- $-> <$*> $@ <$1> <$6>
1666 R$* $: $>Parse0 $>canonify $1 make domain canonical
1668 R< @ $+ > : $* @ $* < @ $1 > : $2 % $3 change @ to % in src route
1669 R$* < @ $+ > : $* : $* $3 $1 < @ $2 > : $4 change to % hack.
1670 R$* < @ $+ > : $* $3 $1 < @ $2 >
1674 ### ParseRecipient -- Strip off hosts in $=R as well as possibly
1687 R$* $: <?> $>CanonAddr $1
1689 R<?> $* < @ $* . > <?> $1 < @ $2 > strip trailing dots
1691 R<?> $- < @ $* > $: <?> $(dequote $1 $) < @ $2 > dequote local part
1694 R<?> $* $=O $* < @ $* > $: <NO> $1 $2 $3 < @ $4>
1696 R<?> $* $@ $1
1702 R<NO> $* < @ $* $=m > $: <RELAY> $1 < @ $2 $3 >', `dnl')
1711 `R<NO> $* < @ $=R > $: <RELAY> $1 < @ $2 >
1713 R<NO> $* < @ $+ > $: <$(access To:$2 $: NO $)> $1 < @ $2 >
1714 R<NO> $* < @ $+ > $: <$(access $2 $: NO $)> $1 < @ $2 >',`dnl')',
1715 `R<NO> $* < @ $* $=R > $: <RELAY> $1 < @ $2 $3 >
1717 R<NO> $* < @ $+ > $: $>D <$2> <NO> <+ To> <$1 < @ $2 >>
1718 R<$+> <$+> $: <$1> $2',`dnl')')
1723 R<NO> $* < @ $+ > $: <MX> < : $(mxserved $2 $) : > < $1 < @$2 > >
1724 R<MX> < : $* <TEMP> : > $* $#TEMP $@ 4.4.0 $: "450 Can not check MX records for recipient host " $1
1726 R<MX> < $* : $=w. : $* > < $+ > $: <RELAY> $4
1728 R<MX> < : $* : > < $+ > $: <NO> $2', `dnl')
1731 R<RELAY> $* < @ $* > $@ $>ParseRecipient $1
1733 R<$+> $* $@ $2
1744 R$* $: $>"RateControl" dummy', `dnl')
1747 R$* $: $>"ConnControl" dummy', `dnl')
1753 R$* $| $* $: $&{client_ptr} $| $2', `dnl')
1754 R$* $: $1 $| $>"Local_check_relay" $1
1755 R$* $| $* $| $#$* $#$3
1756 R$* $| $* $| $* $@ $>"Basic_check_relay" $1 $| $2
1760 R$* $: < $&{deliveryMode} > $1
1761 R< d > $* $@ deferred
1762 R< $* > $* $: $2
1766 R$+ $| $+ $: $>D < $1 > <?> <+ Connect> < $2 >
1769 R $| $+ $: $>A < $1 > <?> <+ Connect> <> empty client_name
1771 R<?> <$+> $: $>A < $1 > <?> <+ Connect> <> no: another lookup
1773 R<?> <$*> $: OK found nothing
1775 R<$={Accept}> <$*> $@ $1 return value of lookup
1776 R<REJECT> <$*> $#error ifdef(`confREJECT_MSG', `$: confREJECT_MSG', `$@ 5.7.1 $: "550 Access denied"')
1777 R<DISCARD> <$*> $#discard $: discard
1778 R<QUARANTINE:$+> <$*> $#error $@ quarantine $: $1
1780 R<ERROR:$-.$-.$-:$+> <$*> $#error $@ $1.$2.$3 $: $4
1781 R<ERROR:$+> <$*> $#error $: $1
1782 ifdef(`_ATMPF_', `R<$* _ATMPF_> <$*> $#error $@ 4.3.0 $: "451 Temporary system failure. Please try again later."', `dnl')
1784 R<$+> <$*> $#error $: $1', `dnl')
1789 R$* $: $&{client_addr}
1790 R$-.$-.$-.$- $: <?> $(host $4.$3.$2.$1._RBL_. $: OK $)
1791 R<?>OK $: OKSOFAR
1792 R<?>$+ $#error $@ 5.7.1 $: "550 Rejected: " $&{client_addr} " listed at _RBL_"',
1797 R$* $: $>"RateControl" dummy')', `dnl')
1801 R$* $: $>"ConnControl" dummy')', `dnl')
1804 R$* $: $&{client_addr} $| $&{client_resolve}
1805 R$=R $* $@ RELAY We relay for these
1806 R$* $| OK $@ OK Resolves.
1807 R$* $| FAIL $#error $@ 5.7.1 $: 550 Fix reverse DNS for $1
1808 R$* $| TEMP $#error $@ 4.1.8 $: 451 Client IP address $1 does not resolve
1809 R$* $| FORGED $#error $@ 4.1.8 $: 451 Possibly forged hostname for $1
1818 R$* $: $1 $| $>"Local_check_mail" $1
1819 R$* $| $#$* $#$2
1820 R$* $| $* $@ $>"Basic_check_mail" $1
1824 R$* $: < $&{deliveryMode} > $1
1825 R< d > $* $@ deferred
1826 R< $* > $* $: $2
1831 R$* $: $1 $| $>"tls_client" $&{verify} $| MAIL
1832 R$* $| $#$+ $#$2
1834 R$* $| $* $: $1
1837 R<> $@ <OK> we MUST accept <> (RFC 1123)
1847 R$+ $: <?> $1
1848 R<?><$+> $: <@> <$1>
1849 R<?>$+ $: <@> <$1>
1852 R$* $: $&{daemon_flags} $| $1
1855 R$* f $* $| <@> < $* @ $- > $: < ? $&{client_name} > < $3 @ $4 >
1857 R$* u $* $| <@> < $* > $: <?> < $3 >
1862 R$* $| $* $: $2
1864 R<@> < $* @ localhost > $: < ? $&{client_name} > < $1 @ localhost >
1865 R<@> < $* @ [127.0.0.1] >
1867 R<@> < $* @ localhost.$m >
1870 `R<@> < $* @ localhost.UUCP >
1875 R<@> $* $: $1 no localhost as domain
1879 R<? $=w> $* $: $2 local client: ok
1880 R<? $+> <$+> $#error $@ 5.5.4 $: "_CODE553 Real domain name required for sender address"
1882 R<?> $* $: $1')
1884 R$* $: <?> $>CanonAddr $1 canonify sender address and mark it
1887 R<?> $* < @ $+ . > <?> $1 < @ $2 > strip trailing dots
1889 R<?> $* < @ $* $=P > $: <_RES_OK_> $1 < @ $2 $3 >
1892 R<?> $* < @ $j > $: <_RES_OK_> $1 < @ $j >
1894 `R<?> $* < @ $+ > $: <_RES_OK_> $1 < @ $2 > ... unresolvable OK',
1895 `R<?> $* < @ $+ > $: <? $(resolve $2 $: $2 <PERM> $) > $1 < @ $2 >
1896 R<? $* <$->> $* < @ $+ >
1905 R<$+> $+ < @ $* > $: @<$1> <$2 < @ $3 >> $| <F:$2@$3> <U:$2@> <D:$3>
1906 R<$+> $+ $: @<$1> <$2> $| <U:$2@>
1910 R@ <$+> <$*> $| <$+> $: <@> <$1> <$2> $| $>SearchList <+ From> $| <$3> <>
1912 R<@> <$+> <$*> $| <$*> $: <$3> <$1> <$2> reverse result
1917 R<?> <$+> <$*> $: <$1> $2 no match
1918 R<$+> <$+> <$*> $: <$1> $3 relevant result, keep it', `dnl')
1925 R<?> $* $: $&{daemon_flags} $| <?> $1
1927 R$* u $* $| <?> $* $: <_RES_OK_> $3
1929 R$* $| $* $: $2
1930 R<?> $* $: < ? $&{client_addr} > $1
1931 R<?> $* $@ <_RES_OK_> ...local unqualed ok
1932 R<? $+> $* $#error $@ 5.5.4 $: "_CODE553 Domain name required for sender address " $&f
1935 R<?> $* $: @ $1 mark address: nothing known about it
1936 R<$={ResOk}> $* $: @ $2 domain ok
1937 R<TEMP> $* $#error $@ 4.1.8 $: "451 Domain of sender address " $&f " does not resolve"
1938 R<PERM> $* $#error $@ 5.1.8 $: "_CODE553 Domain of sender address " $&f " does not exist"
1940 R<$={Accept}> $* $# $1 accept from access map
1941 R<DISCARD> $* $#discard $: discard
1942 R<QUARANTINE:$+> $* $#error $@ quarantine $: $1
1943 R<REJECT> $* $#error ifdef(`confREJECT_MSG', `$: confREJECT_MSG', `$@ 5.7.1 $: "550 Access denied"')
1945 R<ERROR:$-.$-.$-:$+> $* $#error $@ $1.$2.$3 $: $4
1946 R<ERROR:$+> $* $#error $: $1
1947 ifdef(`_ATMPF_', `R<_ATMPF_> $* $#error $@ 4.3.0 $: "451 Temporary system failure. Please try again later."', `dnl')
1949 R<$+> $* $#error $: $1 error from access db',
1954 R@ $*<@$+>$* $: $1<@$2>$3 $| $>BadMX $2
1955 R$* $| $#$* $#$2
1960 R$+ $:<MX><$1><:$(mxlist $1$):><:>
1962 R<MX><$+><:$*<TEMP>:><$*> $#error $@ 4.1.2 $: "450 MX lookup failure for "$1
1965 R<MX><$*><:$+:$*><:$*> <MX><$1><:$3><: $4 $(badmx $2 $):>
1967 R<MX><$*><$*><$*<BADMX>:$*> $#error $@ 5.1.2 $:"550 Illegal MX record for host "$1
1969 R<MX><$*><$*><$*> $:<MX><$1><$3><$2>
1970 R<MX><$*><:$+:$*><:$*> <MX><$1><:$3><:$4 $(dnsA $2 $) :>
1973 R<MX><$*><$*><$*> $:<MX><$1><$3><$2>
1974 R<MX><$*><:$+:$*><:$*> <MX><$1><:$3><:$4 $(BadMXIP $2 $) :>
1976 R<MX><$*><$*><$*<BADMXIP>:$*> $#error $@ 5.1.2 $:"550 Invalid MX record for host "$1',
1986 R$* $: $1 $| $>"Local_check_rcpt" $1
1987 R$* $| $#$* $#$2
1988 R$* $| $* $@ $>"Basic_check_rcpt" $1
1992 R<> $#error $@ nouser $: "553 User address required"
1993 R$@ $#error $@ nouser $: "553 User address required"
1995 R$* $: < $&{deliveryMode} > $1
1996 R< d > $* $@ deferred
1997 R< $* > $* $: $2
2008 R$+ $: <?> $1
2009 R<?> <$+> $: <@> <$1>
2010 R<?> $+ $: <@> <$1>
2011 R<@> < postmaster > $: postmaster
2012 R<@> < $* @ $+ . $+ > $: < $1 @ $2 . $3 >
2014 R<@> $* $: $&{daemon_flags} $| <@> $1
2017 R$* r $* $| <@> < $+ @ $+ > $: < $3 @ $4 >
2019 R$* r $* $| <@> < $* > $: < ? $&{client_name} > < $3 >
2020 R<?> < $* > $: <$1>
2021 R<? $=w> < $* > $: <$1>
2022 R<? $+> <$+> $#error $@ 5.5.4 $: "553 Fully qualified domain name required"
2024 R$* $| <@> $* $: $2', `dnl')
2035 R$* $: $1 $| @ $>"Rcpt_ok" $1
2037 R$* $| @ $#TEMP $+ $: $1 $| T $2
2039 R$* $| @ $#$* $#$2
2041 R$* $| @ RELAY $@ RELAY
2043 R$* $| @ $* $: O $| $>"Relay_ok" $1
2045 R$* $| T $+ $: T $2 $| $>"Relay_ok" $1
2047 R$* $| $#TEMP $+ $#error $2
2049 R$* $| $#$* $#$2
2050 R$* $| RELAY $@ RELAY
2052 R T $+ $| $* $#error $1
2054 R$* $#error $@ 5.7.1 $: confRELAY_MSG
2064 R$* $: $>CanonAddr $1
2065 R$* < @ $* . > $1 < @ $2 > strip trailing dots',
2066 `R$* $: $>ParseRecipient $1 strip relayable hosts')
2071 R$* < @ $* > $* $: $1 < @ $2 @@ $(bestmx $2 $) > $3',
2074 R$* < @ $* $=B > $* $: $1 < @ $2 $3 @@ $(bestmx $2 $3 $) > $4')
2075 R$* $=O $* < @ $* @@ $=w . > $* $@ $>"Rcpt_ok" $1 $2 $3
2076 R$* < @ $* @@ $=w . > $* $: $1 < @ $3 > $4
2077 R$* < @ $* @@ $* > $* $: $1 < @ $2 > $4')
2082 R$* $: <?> $1
2085 R<?> $+ < @ $=w > $: <> <$1 < @ $2 >> $| <F:$1@$2> <U:$1@> <D:$2>
2086 R<?> $+ < @ $* > $: <> <$1 < @ $2 >> $| <F:$1@$2> <D:$2>
2087 R<?> $+ $: <> <$1> $| <U:$1@>
2090 R<> <$*> $| <$+> $: <@> <$1> $| $>SearchList <+ To> $| <$2> <>
2091 R<@> <$*> $| <$*> $: <$2> <$1> reverse result
2092 R<?> <$*> $: @ $1 mark address as no match
2097 R<$={Accept}> <$*> $: @ $2 mark address as no match
2099 R<SKIP> <$*> $: @ $1 mark address as no match', `dnl')
2107 R<$={SpamTag}> <$*> $: @ $2 mark address as no match')
2108 R<REJECT> $* $#error $@ 5.2.1 $: confRCPTREJ_MSG
2109 R<DISCARD> $* $#discard $: discard
2110 R<QUARANTINE:$+> $* $#error $@ quarantine $: $1
2112 R<ERROR:$-.$-.$-:$+> $* $#error $@ $1.$2.$3 $: $4
2113 R<ERROR:$+> $* $#error $: $1
2114 ifdef(`_ATMPF_', `R<_ATMPF_> $* $#error $@ 4.3.0 $: "451 Temporary system failure. Please try again later."', `dnl')
2116 R<$+> $* $#error $: $1 error from access db
2117 R@ $* $1 remove mark', `dnl')', `dnl')
2121 R$* $: $1 $| $>RelayTLS client authenticated?
2122 R$* $| $# $+ $# $2 error/ok?
2123 R$* $| $* $: $1 no
2125 R$* $: $1 $| $>"Local_Relay_Auth" $&{auth_type}
2127 R$* $| $# $* $# $2
2129 R$* $| NO $: $1
2130 R$* $| $* $: $1 $| $&{auth_type}
2133 R$* $| $: $1
2136 R$* $| $={TrustAuthMech} $# RELAY
2138 R$* $| $* $: $1
2141 `R$* ! $* < @ $* > $: <REMOTE> $2 < @ BANG_PATH >
2142 R$* ! $* $: <REMOTE> $2 < @ BANG_PATH >', `dnl')
2145 R$+ < @ $* $=m > $@ RELAY', `dnl')
2146 R$+ < @ $=w > $@ RELAY
2148 `R$+ < @ $=R > $@ RELAY
2151 R$+ < @ $+ > $: <$(access To:$1@$2 $: ? $)> <$1 < @ $2 >>
2152 R<?> <$+ < @ $+ >> $: <$(access To:$2 $: ? $)> <$1 < @ $2 >>',`
2153 R$+ < @ $+ > $: <$(access To:$2 $: ? $)> <$1 < @ $2 >>')
2155 R<?> <$+ < @ $+ >> $: <$(access $2 $: ? $)> <$1 < @ $2 >>',`dnl')',
2156 `R$+ < @ $* $=R > $@ RELAY
2159 R$+ < @ $+ > $: $1 < @ $2 > $| $>SearchList <+ To> $| <F:$1@$2> <D:$2> <F:$1@> <>
2160 R$+ < @ $+ > $| <$*> $: <$3> <$1 <@ $2>>
2161 R$+ < @ $+ > $| $* $: <$3> <$1 <@ $2>>',
2162 `R$+ < @ $+ > $: $>D <$2> <?> <+ To> <$1 < @ $2 >>')')')
2165 R<RELAY> $* $@ RELAY
2166 ifdef(`_ATMPF_', `R<$* _ATMPF_> $* $#TEMP $@ 4.3.0 $: "451 Temporary system failure. Please try again later."', `dnl')
2167 R<$*> <$*> $: $2',`dnl')
2172 R$+ < @ $+ > $: < : $(mxserved $2 $) : > $1 < @ $2 >
2174 R< : $* <TEMP> : > $* $#TEMP $@ 4.4.0 $: "450 Can not check MX records for recipient host " $1
2175 R<$* : $=w . : $*> $* $@ RELAY
2176 R< : $* : > $* $: $2',
2180 R$* $: <?> $1
2181 R<?> $* < @ $+ > $: <REMOTE> $1 < @ $2 >
2188 R<?> postmaster $@ OK
2191 R<?> $+ $: $&{daemon_flags} $| <?> $1
2195 R$* r $* $| <?> $+ $: < ? $&{client_name} > <?> $3
2198 R$* $| <?> $+ $@ RELAY
2200 R<?> <?> $+ $@ RELAY
2202 R<? $=w> <?> $+ $@ RELAY
2204 R<? $+> $+ $#error $@ 5.5.4 $: "553 Domain name required"', `dnl
2206 R<?> $+ $@ RELAY')
2208 R<$+> $* $: $2
2219 R$* $: $&{client_addr}
2220 R$@ $@ RELAY originated locally
2224 R$=R $* $@ RELAY relayable IP address
2226 R$* $: $>A <$1> <?> <+ Connect> <$1>
2227 R<RELAY> $* $@ RELAY relayable IP address
2233 R<REJECT> $* $@ REJECT rejected IP address')
2234 ifdef(`_ATMPF_', `R<_ATMPF_> $* $#TEMP $@ 4.3.0 $: "451 Temporary system failure. Please try again later."', `dnl')
2235 R<$*> <$*> $: $2', `dnl')
2236 R$* $: [ $1 ] put brackets around it...
2237 R$=w $@ RELAY ... and see if it is local
2245 R$* $: <?> $>CanonAddr $&f
2246 R<?> $+ < @ $+ . > <?> $1 < @ $2 > remove trailing dot
2249 R<?> $+ < @ $=w > $@ RELAY FROM local', `dnl')
2251 R<?> $+ < @ $+ > $: <@> $>SearchList <! From> $| <F:$1@$2> ifdef(`_RELAY_DB_FROM_DOMAIN_', ifdef(`_RELAY_HOSTS_ONLY_', `<E:$2>', `<D:$2>')) <>
2252 R<@> <RELAY> $@ RELAY RELAY FROM sender ok
2253 ifdef(`_ATMPF_', `R<@> <_ATMPF_> $#TEMP $@ 4.3.0 $: "451 Temporary system failure. Please try again later."', `dnl')
2266 R$* $: < $&{client_resolve} >
2267 R<TEMP> $#TEMP $@ 4.4.0 $: "450 Relaying temporarily denied. Cannot resolve PTR record for " $&{client_addr}
2268 R<FORGED> $#error $@ 5.7.1 $: "550 Relaying denied. IP name possibly forged " $&{client_name}
2269 R<FAIL> $#error $@ 5.7.1 $: "550 Relaying denied. IP name lookup failed " $&{client_name}
2271 R$* $: <@> $&{client_name}
2277 dnl R<@> $@ RELAY
2280 R<@> $* $=P $:<?> $1 $2
2281 R<@> $+ $:<?> $[ $1 $]
2283 R$* . $1 strip trailing dots
2285 R<?> $* $=m $@ RELAY', `dnl')
2286 R<?> $=w $@ RELAY
2288 `R<?> $=R $@ RELAY
2290 R<?> $* $: <$(access Connect:$1 $: ? $)> <$1>
2291 R<?> <$*> $: <$(access $1 $: ? $)> <$1>',`dnl')',
2292 `R<?> $* $=R $@ RELAY
2294 R<?> $* $: $>D <$1> <?> <+ Connect> <$1>',`dnl')')
2296 R<RELAY> $* $@ RELAY
2297 ifdef(`_ATMPF_', `R<$* _ATMPF_> $* $#TEMP $@ 4.3.0 $: "451 Temporary system failure. Please try again later."', `dnl')
2298 R<$*> <$*> $: $2',`dnl')
2306 R$* <@ $+ . > $1 <@ $2 >
2307 R$* <@ $* > $@ $1 <@ $2 >
2308 R$+ $@ $1 <@ $j >
2314 R$* $: $1 $| $>"tls_client" $&{verify} $| MAIL
2315 R$* $| $#$+ $#$2
2317 R$* $| $* $# $1
2318 R$* $# $1
2324 R$* $: $1 $| $>"tls_client" $&{verify} $| MAIL
2325 R$* $| $#$+ $#$2
2327 R$* $| $* $@ $1
2328 R$* $@ $1
2334 # R$@ $#error $@ 5.1.3 $: "553 Recipient address required"
2336 R$+ $: $1 $| $>checkrcpt $1
2339 R$+ $| $#error $* $#error $2
2340 R$+ $| $#discard $* $#discard $2
2342 R$+ $| $#$* $@ $>"Delay_TLS_Clt" $2
2343 R$+ $| $* $: <?> $>FullAddr $>CanonAddr $1
2352 R<?> $+ < @ $=w > $: <> $1 < @ $2 > $| <F: $1@$2 > <D: $2 > <U: $1@>
2353 R<?> $+ < @ $* > $: <> $1 < @ $2 > $| <F: $1@$2 > <D: $2 >
2354 dnl R<?> $@ something_is_very_wrong_here
2356 R<> $* $| <$+> $: <@> $1 $| $>SearchList <! Spam> $| <$2> <>
2357 R<@> $* $| $* $: $2 $1 reverse result
2364 R<FRIEND> $+ $@ $>"Delay_TLS_Clt2" SPAMFRIEND
2365 R<$*> $+ $: $2',
2369 R<HATER> $+ $: $1 spam hater: continue checks
2370 R<$*> $+ $@ $>"Delay_TLS_Clt2" NOSPAMHATER everyone else: stop
2376 `R$* $: $1 $| $>checkmail $&{mail_from}',
2377 `R$* $: $1 $| $>checkmail <$&f>')
2379 R$* $| $#$* $#$2
2381 R$* $| $* $: $1 $| $>checkrelay $&{client_name} $| $&{client_addr}
2382 R$* $| $#$* $#$2
2383 R$* $| $* $: $1
2387 R$* $: $1 $| <$&{auth_authen}> Get auth info
2389 R$* $| <$+> $: $1 skip if auth
2390 R$* $| <$*> $: $1 $| <$&{client_addr}> [$&s] Get connection info
2391 dnl Bypass for local clients -- IP address starts with $=R
2392 R$* $| <$=R $*> [$*] $: $1 skip if local client
2394 R$* $| <0> [$*] $: $1 skip if sendmail -bs
2396 R$* $| <$*> $=w $#error $@ 5.7.1 $:"550 bogus HELO name used: " $&s
2398 R$* $| <$*> [$=w] $#error $@ 5.7.1 $:"550 bogus HELO name used: " $&s
2400 R$* $| <$*> [$+.$+] $: $1 qualified domain ok
2402 R$* $| <$*> [$*] $#error $@ 5.7.1 $:"550 bogus HELO name used: " $&s
2404 R$* $| $* $: $1
2430 R<$+> <$*> <$- $-> <$*> $: <$(access $4`'_TAG_DELIM_`'$1 $: ? $)> <$1> <$2> <$3 $4> <$5>
2433 R<?> <$+> <$*> <+ $-> <$*> $: <$(access $1 $: ? $)> <$1> <$2> <+ $3> <$4>
2436 R<?> <$+ + $* @ $+> <$*> <$- $-> <$*>
2440 R<?> <$+ + $* @ $+> <$*> <+ $-> <$*>
2444 R<?> <$+ + $* @ $+> <$*> <$- $-> <$*>
2448 R<?> <$+ + $* @ $+> <$*> <+ $-> <$*>
2452 R<?> <$+> <$*> <$- $-> <$*> $@ <$2> <$5>
2455 R<$+ _ATMPF_> <$*> <$- $-> <$*> $@ <_ATMPF_> <$5>', `dnl')
2458 R<$+> <$*> <$- $-> <$*> $@ <$1> <$5>
2477 R<$*> <$*> <$- $-> <$*> $: <$(access $4`'_TAG_DELIM_`'$1 $: ? $)> <$1> <$2> <$3 $4> <$5>
2480 R<?> <$+> <$*> <+ $-> <$*> $: <$(access $1 $: ? $)> <$1> <$2> <+ $3> <$4>
2483 R<?> <$+> <$*> <$- $-> <$*> $@ <$2> <$5>
2486 R<$+ _ATMPF_> <$*> <$- $-> <$*> $@ <_ATMPF_> <$5>', `dnl')
2489 R<$+> <$*> <$- $-> <$*> $@ <$1> <$5>
2512 R<$+> <$*> <$- $-> <$*> $: <$(access $4`'_TAG_DELIM_`'$1 $: ? $)> <$1> <$2> <$3 $4> <$5>
2515 R<?> <$+> <$*> <+ $-> <$*> $: <$(access $1 $: ? $)> <$1> <$2> <+ $3> <$4>
2520 R<?> <$+ + $* @> <$*> <$- $-> <$*>
2524 R<?> <$+ + $* @> <$*> <+ $-> <$*>
2528 R<?> <$+ + $* @> <$*> <$- $-> <$*>
2532 R<?> <$+ + $* @> <$*> <+ $-> <$*>
2536 R<?> <$+> <$*> <$- $-> <$*> $@ <$2> <$5>
2539 R<$+ _ATMPF_> <$*> <$- $-> <$*> $@ <_ATMPF_> <$5>', `dnl')
2542 R<$+> <$*> <$- $-> <$*> $@ <$1> <$5>
2576 R<$+> $| <$={Src}:$*> <$*> $: <$1> $| <$4> $| $>$2 <$3> <?> <$1> <>
2579 R<$+> $| <> $| <?> <> $@ <?>
2581 R<$+> $| <$+> $| <?> <> $@ $>SearchList <$1> $| <$2>
2583 R<$+> $| <$*> $| <$+> <> $@ <$3>
2585 R<$+> $| <$+> $@ <$2>
2599 R$* $: $&{auth_type} $| $1
2601 R$@ $| $* $#error $@ 5.7.1 $: "550 not authenticated"
2603 R$* $| $&{auth_authen} $@ identical
2604 R$* $| <$&{auth_authen}> $@ identical
2606 R$* $| $* $: $1 $| $>"Local_trust_auth" $2
2607 R$* $| $#$* $#$2
2609 R$* $#error $@ 5.7.1 $: "550 " $&{auth_authen} " not allowed to act as " $&{auth_author}
2625 R$* $: $1 $| $>"Local_srv_features" $1
2626 R$* $| $#$* $#$2
2627 R$* $| $* $: $1', `dnl')
2629 R$* $: $>D <$&{client_name}> <?> <! SRV_FEAT_TAG> <>
2630 R<?>$* $: $>A <$&{client_addr}> <?> <! SRV_FEAT_TAG> <>
2631 R<?>$* $: <$(access SRV_FEAT_TAG`'_TAG_DELIM_ $: ? $)>
2632 R<?>$* $@ OK
2634 R<$* _ATMPF_>$* $#temp', `dnl')
2635 R<$+>$* $# $1')
2643 R$* $: $1 $| $>"Local_try_tls" $1
2644 R$* $| $#$* $#$2
2645 R$* $| $* $: $1', `dnl')
2647 R$* $: $>D <$&{server_name}> <?> <! TLS_TRY_TAG> <>
2648 R<?>$* $: $>A <$&{server_addr}> <?> <! TLS_TRY_TAG> <>
2649 R<?>$* $: <$(access TLS_TRY_TAG`'_TAG_DELIM_ $: ? $)>
2650 R<?>$* $@ OK
2652 R<$* _ATMPF_>$* $#error $@ 4.3.0 $: "451 Temporary system failure. Please try again later."', `dnl')
2653 R<NO>$* $#error $@ 5.7.1 $: "550 do not try TLS with " $&{server_name} " ["$&{server_addr}"]"')
2665 R$* $: $1 $| $>"Local_tls_rcpt" $1
2666 R$* $| $#$* $#$2
2667 R$* $| $* $: $1', `dnl')
2670 R$* $: $(macro {TLS_Name} $@ $&{server_name} $) $1
2672 R$+ $: <?> $>CanonAddr $1
2674 R<?> $+ < @ $+ . > <?> $1 <@ $2 >
2676 R<?> $+ < @ $+ > $: $1 <@ $2 > $| <F:$1@$2> <U:$1@> <D:$2> <E:>
2678 R<?> $+ $: $1 $| <U:$1@> <E:>
2681 R$* $| $+ $: $1 $| $>SearchList <! TLS_RCPT_TAG> $| $2 <>
2683 R$* $| <?> $@ OK
2685 R$* $| <$* _ATMPF_> $#error $@ 4.3.0 $: "451 Temporary system failure. Please try again later."', `dnl')
2687 R$* $| <$+> $@ $>"TLS_connection" $&{verify} $| <$2>')
2700 R$* $: $1 <?> $>"Local_tls_client" $1
2701 R$* <?> $#$* $#$2
2702 R$* <?> $* $: $1', `dnl')
2705 R$* $: $(macro {TLS_Name} $@ $&{client_name} $) $1
2710 R$* $| $* $: $1 $| $>D <$&{client_name}> <?> <! TLS_CLT_TAG> <>
2711 R$* $| <?>$* $: $1 $| $>A <$&{client_addr}> <?> <! TLS_CLT_TAG> <>
2713 R$* $| <?>$* $: $1 $| <$(access TLS_CLT_TAG`'_TAG_DELIM_ $: ? $)>
2715 R$* $| <$* _ATMPF_> $#error $@ 4.3.0 $: "451 Temporary system failure. Please try again later."', `dnl')
2716 R$* $@ $>"TLS_connection" $1', `dnl
2717 R$* $| $* $@ $>"TLS_connection" $1')
2730 R$* $: $1 $| $>"Local_tls_server" $1
2731 R$* $| $#$* $#$2
2732 R$* $| $* $: $1', `dnl')
2735 R$* $: $(macro {TLS_Name} $@ $&{server_name} $) $1
2736 R$* $: $1 $| $>D <$&{server_name}> <?> <! TLS_SRV_TAG> <>
2737 R$* $| <?>$* $: $1 $| $>A <$&{server_addr}> <?> <! TLS_SRV_TAG> <>
2739 R$* $| <?>$* $: $1 $| <$(access TLS_SRV_TAG`'_TAG_DELIM_ $: ? $)>
2741 R$* $| <$* _ATMPF_> $#error $@ 4.3.0 $: "451 Temporary system failure. Please try again later."', `dnl')
2742 R$* $@ $>"TLS_connection" $1', `dnl
2743 R$* $@ $>"TLS_connection" $1')
2766 R$* $| <$*>$* $: $1 $| <$2>
2770 R$* $| <PERM + $={Tls} $*> $: $1 $| <503:5.7.0> <$2 $3>
2771 R$* $| <TEMP + $={Tls} $*> $: $1 $| <403:4.7.0> <$2 $3>
2773 R$* $| <$={Tls} $*> $: $1 $| <ifdef(`TLS_PERM_ERR', `503:5.7.0', `403:4.7.0')> <$2 $3>
2785 R$* $| <$*> <VERIFY> $: <$2> <VERIFY> <> $1
2787 R$* $| <$*> <VERIFY + $+> $: <$2> <VERIFY> <$3> $1
2788 R$* $| <$*> <$={Tls}:$->$* $: <$2> <$3:$4> <> $1
2790 R$* $| <$*> <$={Tls}:$- + $+>$* $: <$2> <$3:$4> <$5> $1
2793 R$* $| $* $@ OK
2798 R<$*><VERIFY> <> OK $@ OK
2801 R<$*><VERIFY> <$+> OK $: <$1> <REQ:0> <$2>
2803 R<$*><VERIFY:$-> <$*> OK $: <$1> <REQ:$2> <$3>
2805 R<$*><ENCR:$-> <$*> $* $: <$1> <REQ:$2> <$3>
2810 R<$-:$+><VERIFY $*> <$*> $#error $@ $2 $: $1 " authentication required"
2811 R<$-:$+><VERIFY $*> <$*> FAIL $#error $@ $2 $: $1 " authentication failed"
2812 R<$-:$+><VERIFY $*> <$*> NO $#error $@ $2 $: $1 " not authenticated"
2813 R<$-:$+><VERIFY $*> <$*> NOT $#error $@ $2 $: $1 " no authentication requested"
2814 R<$-:$+><VERIFY $*> <$*> NONE $#error $@ $2 $: $1 " other side does not support STARTTLS"
2816 R<$-:$+><VERIFY $*> <$*> $+ $#error $@ $2 $: $1 " authentication failure " $4
2818 R<$*><REQ:$-> <$*> $: <$1> <REQ:$2> <$3> $>max $&{cipher_bits} : $&{auth_ssf}
2820 R<$*><REQ:$-> <$*> $- $: <$1> <$2:$4> <$3> $(arith l $@ $4 $@ $2 $)
2821 R<$-:$+><$-:$-> <$*> TRUE $#error $@ $2 $: $1 " encryption too weak " $4 " less than " $3
2830 R<$-:$+><$-:$-> <$*> $* $: <$1:$2 _TLS_ARS_ $5>
2833 R<$-:$+ _TLS_ARS_ > $@ OK
2835 R<$-:$+ _TLS_ARS_ $+ > $: <$1:$2> <$3>
2836 R<$-:$+> < $+ _TLS_ARS_ $+ > <$1:$2> <$3> <$4>
2837 R<$-:$+> $+ $@ $>"TLS_req" $3 $| <$1:$2>
2857 R $| $+ $@ OK
2859 R<CN> $* $| <$+> $: <CN:$&{TLS_Name}> $1 $| <$2>
2861 R<CN:$&{cn_subject}> $* $| <$+> $@ $>"TLS_req" $1 $| <$2>
2864 R<CN:$+> $* $| <$-:$+> $#error $@ $4 $: $3 " CN " $&{cn_subject} " does not match " $1
2866 R<CS:$&{cert_subject}> $* $| <$+> $@ $>"TLS_req" $1 $| <$2>
2869 R<CS:$+> $* $| <$-:$+> $#error $@ $4 $: $3 " Cert Subject " $&{cert_subject} " does not match " $1
2871 R<CI:$&{cert_issuer}> $* $| <$+> $@ $>"TLS_req" $1 $| <$2>
2874 R<CI:$+> $* $| <$-:$+> $#error $@ $4 $: $3 " Cert Issuer " $&{cert_issuer} " does not match " $1
2884 R: $: 0
2885 R:$- $: $1
2886 R$-: $: $1
2887 R$-:$- $: $(arith l $@ $1 $@ $2 $) : $1 : $2
2889 R$-:$-:$- $: $2
2913 R$* $: <?> $&{verify}
2914 R<?> OK $: OK authenticated: continue
2915 R<?> $* $@ NO not authenticated
2917 R$* $: $(CERTIssuer $&{cert_issuer} $)',
2918 `R$* $: $&{cert_issuer}')
2919 R$+ $: $(access CERTISSUER`'_TAG_DELIM_`'$1 $)
2925 R<@> $+ $: <@> $(access CERTSUBJECT`'_TAG_DELIM_`'$1 $)
2926 R<@> RELAY $# RELAY
2927 R$* $: NO', `dnl')
2945 R$* $: <$(authinfo AuthInfo:$&{server_name} $: ? $)>
2946 R<?> $: <$(authinfo AuthInfo:$&{server_addr} $: ? $)>
2947 R<?> $: <$(authinfo AuthInfo: $: ? $)>
2948 R<?> $@ no no authinfo available
2949 R<$*> $# $1
2952 R$* $: $1 $| $>D <$&{server_name}> <?> <! AuthInfo> <>
2953 R$* $| <?>$* $: $1 $| $>A <$&{server_addr}> <?> <! AuthInfo> <>
2954 R$* $| <?>$* $: $1 $| <$(access AuthInfo`'_TAG_DELIM_ $: ? $)> <>
2955 R$* $| <?>$* $@ no no authinfo available
2956 R$* $| <$*> <> $# $2
2967 R$* $: <A:$&{client_addr}> <E:>
2969 R$+ $: $>SearchList <! ClientRate> $| $1 <>
2971 R<?> $@ OK
2973 R<$* _ATMPF_> $#error $@ 4.3.0 $: "451 Temporary system failure. Please try again later."', `dnl')
2975 R<0> $@ OK no limit
2976 R<$+> $: <$1> $| $(arith l $@ $1 $@ $&{client_rate} $)
2978 R<$+> $| TRUE $#error $@ 4.3.2 $: _RATE_CONTROL_REPLY Connection rate limit exceeded.
2989 R$* $: <A:$&{client_addr}> <E:>
2991 R$+ $: $>SearchList <! ClientConn> $| $1 <>
2993 R<?> $@ OK
2995 R<$* _ATMPF_> $#error $@ 4.3.0 $: "451 Temporary system failure. Please try again later."', `dnl')
2997 R<0> $@ OK no limit
2998 R<$+> $: <$1> $| $(arith l $@ $1 $@ $&{client_connections} $)
3000 R<$+> $| TRUE $#error $@ 4.3.2 $: _CONN_CONTROL_REPLY Too many open connections.