164315Sericdivert(-1) 264315Seric# 364315Seric# Copyright (c) 1983 Eric P. Allman 464315Seric# Copyright (c) 1988, 1993 564315Seric# The Regents of the University of California. All rights reserved. 664315Seric# 764315Seric# %sccs.include.redist.sh% 864315Seric# 964315Sericdivert(0) 1064315Seric 11*65961SericVERSIONID(`@(#)nullrelay.m4 8.5 (Berkeley) 02/01/94') 1264315Seric 1364315Seric# 1464315Seric# This configuration applies only to relay-only hosts. They send 1564315Seric# all mail to a hub without consideration of the address syntax 1664315Seric# or semantics, except for adding the hub qualification to the 1764315Seric# addresses. 1864315Seric# 1964322Seric# This is based on a prototype done by Bryan Costales of ICSI. 2064322Seric# 2164315Seric 2264315Seric# hub host (to which all mail is sent) 2364315SericDH`'ifdef(`MAIL_HUB', MAIL_HUB, 2464393Seric `errprint(`MAIL_HUB not defined for nullclient feature')') 2564315Seric 2664393Seric# name from which everyone will appear to come 2764393SericDM`'ifdef(`MASQUERADE_NAME', MASQUERADE_NAME, MAIL_HUB) 2864393Seric 2964315Seric# route-addr separators 3064315SericC: : , 3164315Seric 3264315Sericundivert(6)dnl 3364315Seric 3464315Seric###################### 3564315Seric# Special macros # 3664315Seric###################### 3764315Seric 3864315Seric# SMTP initial login message 3964315SericDe`'confSMTP_LOGIN_MSG 4064315Seric 4164315Seric# UNIX initial From header format 4264315SericDl`'confFROM_LINE 4364315Seric 4464315Seric# my name for error messages 4564315SericDn`'confMAILER_NAME 4664315Seric 4764315Seric# delimiter (operator) characters 4864315SericDo`'confOPERATORS 4964315Seric 5064315Seric# format of a total name 5164315SericDq<$g> 5264315Sericinclude(`../m4/version.m4') 5364315Seric 5464315Seric############### 5564315Seric# Options # 5664315Seric############### 5764315Seric 5864315Seric# strip message body to 7 bits on input? 5964315SericO7`'confSEVEN_BIT_INPUT 6064315Seric 6164315Seric# no aliases here 6264315Seric 6364315Seric# substitution for space (blank) characters 6464315SericOB`'confBLANK_SUB 6564315Seric 6664315Seric# default delivery mode 6764315SericOd`'confDELIVERY_MODE 6864315Seric 6964315Seric# error message header/file 7064315Sericifdef(`confERROR_MESSAGE', 7164315Seric OE`'confERROR_MESSAGE, 7264315Seric #OE/etc/sendmail.oE) 7364315Seric 7464315Seric# error mode 7564315Sericifdef(`confERROR_MODE', 7664315Seric Oe`'confERROR_MODE, 7764315Seric #Oep) 7864315Seric 7964315Seric# save Unix-style "From_" lines at top of header? 8064315SericOf`'confSAVE_FROM_LINES 8164315Seric 8264315Seric# temporary file mode 8364315SericOF`'confTEMP_FILE_MODE 8464315Seric 8564315Seric# default GID 8664315SericOg`'confDEF_GROUP_ID 8764315Seric 8864315Seric# maximum hop count 8964315SericOh`'confMAX_HOP 9064315Seric 9164315Seric# location of help file 9264315SericOH`'ifdef(`HELP_FILE', HELP_FILE, /usr/lib/sendmail.hf) 9364315Seric 9464315Seric# ignore dots as terminators in incoming messages? 9564315SericOi`'confIGNORE_DOTS 9664315Seric 9764315Seric# Insist that the BIND name server be running to resolve names 9864315Sericifdef(`confBIND_OPTS', 9964315Seric OI`'confBIND_OPTS, 10064315Seric #OI) 10164315Seric 10264315Seric# deliver MIME-encapsulated error messages? 10364315SericOj`'confMIME_FORMAT_ERRORS 10464315Seric 10564315Seric# open connection cache size 10664315SericOk`'confMCI_CACHE_SIZE 10764315Seric 10864315Seric# open connection cache timeout 10964315SericOK`'confMCI_CACHE_TIMEOUT 11064315Seric 11164315Seric# use Errors-To: header? 11264315SericOl`'confUSE_ERRORS_TO 11364315Seric 11464315Seric# log level 11564315SericOL`'confLOG_LEVEL 11664315Seric 11764315Seric# send to me too, even in an alias expansion? 11864315SericOm`'confME_TOO 11964315Seric 12064315Seric# default messages to old style headers if no special punctuation? 12164315SericOo`'confOLD_STYLE_HEADERS 12264315Seric 12364315Seric# SMTP daemon options 12464315Sericifdef(`confDAEMON_OPTIONS', 12564315Seric OO`'confDAEMON_OPTIONS, 12664315Seric #OOPort=esmtp) 12764315Seric 12864315Seric# privacy flags 12964315SericOp`'confPRIVACY_FLAGS 13064315Seric 13164315Seric# who (if anyone) should get extra copies of error messages 13264315Sericifdef(`confCOPY_ERRORS_TO', 13364315Seric OP`'confCOPY_ERRORS_TO, 13464315Seric #OPPostmaster) 13564315Seric 13664315Seric# slope of queue-only function 13764315Sericifdef(`confQUEUE_FACTOR', 13864315Seric Oq`'confQUEUE_FACTOR, 13964315Seric #Oq600000) 14064315Seric 14164315Seric# queue directory 14264315SericOQ`'ifdef(`QUEUE_DIR', QUEUE_DIR, /var/spool/mqueue) 14364315Seric 14464315Seric# read timeout -- now OK per RFC 1123 section 5.3.2 14564315Sericifdef(`confREAD_TIMEOUT', 14664315Seric Or`'confREAD_TIMEOUT, 14764315Seric #Ordatablock=10m) 14864315Seric 14964315Seric# queue up everything before forking? 15064315SericOs`'confSAFE_QUEUE 15164315Seric 15264315Seric# status file 15364315SericOS`'ifdef(`STATUS_FILE', STATUS_FILE, /etc/sendmail.st) 15464315Seric 15564315Seric# default message timeout interval 15664315SericOT`'confMESSAGE_TIMEOUT 15764315Seric 15864315Seric# time zone handling: 15964315Seric# if undefined, use system default 16064315Seric# if defined but null, use TZ envariable passed in 16164315Seric# if defined and non-null, use that info 16264315Sericifelse(confTIME_ZONE, `USE_SYSTEM', `#Ot', 16364344Seric confTIME_ZONE, `USE_TZ', `Ot', 16464315Seric `Ot`'confTIME_ZONE') 16564315Seric 16664315Seric# default UID 16764315SericOu`'confDEF_USER_ID 16864315Seric 16964315Seric# deliver each queued job in a separate process? 17064315SericOY`'confSEPARATE_PROC 17164315Seric 17264315Seric# work class factor 17364315Sericifdef(`confWORK_CLASS_FACTOR', 17464315Seric Oz`'confWORK_CLASS_FACTOR, 17564315Seric #Oz1800) 17664315Seric 17764315Seric# work time factor 17864315Sericifdef(`confWORK_TIME_FACTOR', 17964315Seric OZ`'confWORK_TIME_FACTOR, 18064315Seric #OZ90000) 18164315Seric 18264315Seric########################### 18364315Seric# Message precedences # 18464315Seric########################### 18564315Seric 18664315SericPfirst-class=0 18764315SericPspecial-delivery=100 18864315SericPlist=-30 18964315SericPbulk=-60 19064315SericPjunk=-100 19164315Seric 19264315Seric##################### 19364315Seric# Trusted users # 19464315Seric##################### 19564315Seric 19664315SericTroot 19764315SericTdaemon 19864315SericTuucp 19964315Seric 20064315Seric######################### 20164315Seric# Format of headers # 20264315Seric######################### 20364315Seric 20464315SericH?P?Return-Path: $g 20564315SericHReceived: $?sfrom $s $.$?_($_) $.by $j ($v/$Z)$?r with $r$. id $i$?u for $u$.; $b 20664315SericH?D?Resent-Date: $a 20764315SericH?D?Date: $a 20864315SericH?F?Resent-From: $q 20964315SericH?F?From: $q 21064315SericH?x?Full-Name: $x 21164315SericHSubject: 21264315Seric# HPosted-Date: $a 21364315Seric# H?l?Received-Date: $b 21464315SericH?M?Resent-Message-Id: <$t.$i@$j> 21564315SericH?M?Message-Id: <$t.$i@$j> 21664315Seric# 21764315Seric###################################################################### 21864315Seric###################################################################### 21964315Seric##### 22064315Seric##### REWRITING RULES 22164315Seric##### 22264315Seric###################################################################### 22364315Seric###################################################################### 22464315Seric 22564315Seric########################################### 22664315Seric### Rulset 3 -- Name Canonicalization ### 22764315Seric########################################### 22864315SericS3 22964315Seric 23064315Seric# handle null input and list syntax (translate to <@> special case) 23164315SericR$@ $@ <@> 23264315SericR$*:;$* $@ $1 :; <@> 23364315Seric 23464315Seric# basic textual canonicalization -- note RFC733 heuristic here 23564315SericR$*<$*>$*<$*>$* $2$3<$4>$5 strip multiple <> <> 23664315SericR$*<$*<$+>$*>$* <$3>$5 2-level <> nesting 23764315SericR$*<>$* $@ <@> MAIL FROM:<> case 23864315SericR$*<$+>$* $2 basic RFC821/822 parsing 23964315Seric 24064393Sericifdef(`_NO_CANONIFY_', `dnl', 24164393Seric`# eliminate local host if present 24264393SericR@ $=w $=: $+ $@ @ $M $2 $3 @thishost ... 243*65961SericR@ $+ $@ @ $1 @somewhere ... 24464315Seric 24564393SericR$+ @ $=w $@ $1 @ $M ...@thishost 24664315SericR$+ @ $+ $@ $1 @ $2 ...@somewhere 24764315Seric 24864393SericR$=w ! $+ $@ $2 @ $M thishost!... 24964393SericR$+ ! $+ $@ $1 ! $2 @ $M somewhere ! ... 25064315Seric 25164393SericR$+ % $=w $@ $1 @ $M ...%thishost 25264315SericR$+ % $+ $@ $1 @ $2 ...%somewhere 25364315Seric 25464393SericR$+ $@ $1 @ $M unadorned user') 25564315Seric 25664315Seric 25764315Seric###################################### 25864315Seric### Ruleset 0 -- Parse Address ### 25964315Seric###################################### 26064315Seric 26164315SericS0 26264315Seric 26364315SericR$*:;<@> $#error $@ USAGE $: "list:; syntax illegal for recipient addresses" 26464315Seric 26564315Seric# pass everything else to a relay host 26664315SericR$* $#_RELAY_ $@ $H $: $1 26764315Seric 26864315Seric# 26964315Seric###################################################################### 27064315Seric###################################################################### 27164315Seric##### 27264315Seric`##### MAILER DEFINITIONS' 27364315Seric##### 27464315Seric###################################################################### 27564315Seric###################################################################### 27664315Sericundivert(7)dnl 277