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