1PUSHDIVERT(-1) 2# 3# Copyright (c) 1983 Eric P. Allman 4# Copyright (c) 1988, 1993 5# The Regents of the University of California. All rights reserved. 6# 7# %sccs.include.redist.sh% 8# 9ifdef(`SMTP_MAILER_FLAGS',, `define(`SMTP_MAILER_FLAGS', `')') 10ifdef(`SMTP_MAILER_ARGS',, `define(`SMTP_MAILER_ARGS', `IPC $h')') 11ifdef(`ESMTP_MAILER_ARGS',, `define(`ESMTP_MAILER_ARGS', `IPC $h')') 12ifdef(`SMTP8_MAILER_ARGS',, `define(`SMTP8_MAILER_ARGS', `IPC $h')') 13ifdef(`RELAY_MAILER_ARGS',, `define(`RELAY_MAILER_ARGS', `IPC $h')') 14POPDIVERT 15##################################### 16### SMTP Mailer specification ### 17##################################### 18 19VERSIONID(`@(#)smtp.m4 8.22 (Berkeley) 04/26/95') 20 21Msmtp, P=[IPC], F=CONCAT(mDFMuX, SMTP_MAILER_FLAGS), S=11/31, R=ifdef(`_ALL_MASQUERADE_', `11/31', `21'), E=\r\n, L=990, 22 _OPTINS(`SMTP_MAILER_MAX', `M=', `, ')_OPTINS(`SMTP_MAILER_CHARSET', `C=', `, ')T=DNS/RFC822/SMTP, 23 A=SMTP_MAILER_ARGS 24Mesmtp, P=[IPC], F=CONCAT(mDFMuXa, SMTP_MAILER_FLAGS), S=11/31, R=ifdef(`_ALL_MASQUERADE_', `11/31', `21'), E=\r\n, L=990, 25 _OPTINS(`SMTP_MAILER_MAX', `M=', `, ')_OPTINS(`SMTP_MAILER_CHARSET', `C=', `, ')T=DNS/RFC822/SMTP, 26 A=ESMTP_MAILER_ARGS 27Msmtp8, P=[IPC], F=CONCAT(mDFMuX8, SMTP_MAILER_FLAGS), S=11/31, R=ifdef(`_ALL_MASQUERADE_', `11/31', `21'), E=\r\n, L=990, 28 _OPTINS(`SMTP_MAILER_MAX', `M=', `, ')_OPTINS(`SMTP_MAILER_CHARSET', `C=', `, ')T=DNS/RFC822/SMTP, 29 A=SMTP8_MAILER_ARGS 30Mrelay, P=[IPC], F=CONCAT(mDFMuXa8, SMTP_MAILER_FLAGS), S=11/31, R=61, E=\r\n, L=2040, 31 _OPTINS(`RELAY_MAILER_CHARSET', `C=', `, ')T=DNS/RFC822/SMTP, 32 A=RELAY_MAILER_ARGS 33 34# 35# envelope sender and masquerading recipient rewriting 36# 37S11 38R$+ $: $>51 $1 sender/recipient common 39R$* :; <@> $@ list:; special case 40R$* $@ $>61 $1 qualify unqual'ed names 41 42 43# 44# header recipient rewriting if not masquerading recipients 45# 46S21 47 48# do sender/recipient common rewriting 49R$+ $: $>51 $1 50 51# unqualified names (e.g., "eric") are qualified by local host 52R$* < @ $* > $* $@ $1 < @ $2 > $3 already qualified 53R$+ $: $1 < @ $j > add local domain 54 55 56# 57# header sender and masquerading recipient rewriting 58# 59S31 60R$+ $: $>51 $1 sender/recipient common 61R:; <@> $@ list:; special case 62 63# do special header rewriting 64R$* <@> $* $@ $1 <@> $2 pass null host through 65R< @ $* > $* $@ < @ $1 > $2 pass route-addr through 66R$=E < @ $=w . > $@ $1 < @ $2 > exposed user as is 67R$* < @ $=w . > $: $1 < @ $2 @ $M > masquerade as domain 68R$* < @ $+ @ > $@ $1 < @ $2 > in case $M undefined 69R$* < @ $+ @ $+ > $@ $1 < @ $3 > $M is defined -- use it 70R$* $@ $>61 $1 qualify unqual'ed names 71 72 73# 74# convert pseudo-domain addresses to real domain addresses 75# 76S51 77 78# pass <route-addr>s through 79R< @ $+ > $* $@ < @ $1 > $2 resolve <route-addr> 80 81# output fake domains as user%fake@relay 82ifdef(`BITNET_RELAY', 83`R$+ <@ $+ .BITNET. > $: $1 % $2 .BITNET < @ $B > user@host.BITNET 84R$+.BITNET <@ $+:$+ > $: $1 .BITNET < @ $3 > strip mailer: part', 85 `dnl') 86ifdef(`_NO_UUCP_', `dnl', ` 87# do UUCP heuristics; note that these are shared with UUCP mailers 88R$+ < @ $+ .UUCP. > $: < $2 ! > $1 convert to UUCP form 89R$+ < @ $* > $* $@ $1 < @ $2 > $3 not UUCP form 90 91# leave these in .UUCP form to avoid further tampering 92R< $&h ! > $- ! $+ $@ $2 < @ $1 .UUCP. > 93R< $&h ! > $-.$+ ! $+ $@ $3 < @ $1.$2 > 94R< $&h ! > $+ $@ $1 < @ $&h .UUCP. > 95R< $+ ! > $+ $: $1 ! $2 < @ $j > 96R$+ < @ $+ : $+ > $: $1 < @ $3 > strip mailer: part') 97 98 99# 100# common sender and masquerading recipient rewriting 101# 102S61 103 104R$* < @ $* > $* $@ $1 < @ $2 > $3 already qualified 105R$=E $@ $1 < @ $j> show exposed names 106R$+ $: $1 < @ $M > user w/o host 107R$+ <@> $: $1 < @ $j > in case $M undefined 108