home *** CD-ROM | disk | FTP | other *** search
- ########################################################################
- # #
- # #
- # Sendmail #
- # Copyright (c) 1983 Eric P. Allman #
- # Berkeley, California #
- # #
- # Copyright (c) 1983 Regents of the University of California. #
- # All rights reserved. The Berkeley software License Agreement #
- # specifies the terms and conditions for redistribution. #
- # #
- # This configuration file was modified specifically for IBM's #
- # SENDMAIL product for the IBM OS/2 Operating System. Please avoid #
- # making changes to this file, as it will change the operation of #
- # SENDMAIL. #
- # #
- # Modified by: Ed Overly & Daniel Barton @ IBM #
- # Yorktown, NY Research Triangle Park, NC #
- ########################################################################
-
- ########################################################################
- # #
- # Host name definition (YOU MUST DEFINE THESE) #
- # #
- # Define macro for your host name for all return addresses. #
- # Define class to recognize all aliases of your host name. #
- # #
- # The domain will be added to this name!!! -mjz #
- # #
- #DwYourHostName #
- #CwYourHostName YourHostAliases #
- ########################################################################
-
- # My host name
- Dwadeptbbs
- Cwadeptbbs
-
-
- ########################################################################
- # #
- # Local domain name. (DEFINE THIS IF DOMAINS ARE USED) #
- # **WARNING** #
- # When domain names are used, SMTP transactions utilize the #
- # full domain (official) name of the host. All host names with #
- # no domains (abbreviated) are expanded with the local domain #
- # by the mail service. This is consistent with Internet text standards.#
- # All hosts sending or RECEIVING mail must recognize their official #
- # host names. When using domains enter the official host name in #
- # /etc/hosts and be certain that all network nameservers recognize #
- # official host names. #
- # #
- # Define the D macro to be the whole domain for the local host. #
- # This configuration file supports four part domains. It can be #
- # expanded to support n part domains. #
- # #
- #DDgrandchild.child.parent.top #
- ########################################################################
-
- # My domain name
- DDhsonline.net
-
- ########################################################################
- # #
- # Host name for UUCP handling (YOU MAY OPTIONALLY DEFINE THIS) #
- # #
- # Optionally define macro specifying name of host to which you want #
- # to relay all UUCP traffic. This would be a host on the network #
- # with modems. You do not have to define this to use UUCP. #
- # #
- # Defining this macro eliminates the requirement for you to explicitly #
- # reference the relaying host in your UUCP route addresses. For #
- # instance, if the host with modems is called "cat", you normally #
- # would have to specify a UUCP address as "cat!route_path". If you #
- # define macro "DUcat", then you only need specify "route_path". #
- # #
- #DUHostWithModems #
- # #
- ########################################################################
-
- # my official host name (includes host name and domain name)
- Dj$w$?D.$D$.
-
-
- #####################################################
- # Version Number (YOU MAY CHANGE THIS AS NEEDED)#
- #####################################################
- DZ1.0
-
-
- ######################
- # Special macros #
- ######################
-
- # my name
- DnMAILER-DAEMON
- # UNIX header format
- DlFrom $g $d
- # delimiter (operator) characters
- Do.:%@!^=/[]
- # format of a total name
- Dq$g$?x ($x)$.
- # SMTP login message
- De$j Sendmail $v/$Z ready at $b
-
-
- ###############
- # Options #
- ###############
-
- # location of alias file
- OAc:\tcpip\etc\aliases
-
- # substitution for space (blank) characters
- OB.
-
- # (don't) connect to "expensive" mailers
- #Oc
-
- # default delivery mode
- Odbackground
-
- # location of help file
- OHc:\tcpip\etc\sendmail.hf
-
- # Queue directory - specify directory containing log file
- OQc:\tcpip\etc\mqueue
-
- # default messages to old style
- Oo
-
- # status file
- OSc:\tcpip\etc\sendmail.st
-
- # queue up everything before starting transmission
- Os
-
- # load average at which we refuse connections
- #OX
-
- # work recipient factor
- #Oy
-
- # work msg class factor
- #Oz
-
- # work time factor
- #OZ
-
-
- ###########################
- # Message precedences #
- ###########################
-
- Pfirst-class=0
- Pspecial-delivery=100
- Pbulk=-60
- Pjunk=-100
-
-
- #####################
- # Trusted users #
- #####################
-
- # This parameter is not used by OS/2 Sendmail.
- Tdaemon
-
-
- #########################
- # Format of headers #
- #########################
-
- H?P?Return-Path: <$g>
- HReceived: $?sfrom $s $.by $j ($v/$Z)
- id $i; $b
- H?D?Resent-Date: $a
- H?D?Date: $a
- H?F?Resent-From: $q
- H?F?From: $q
- H?x?Full-Name: $x
- HSubject:
- # HPosted-Date: $a
- # H?l?Received-Date: $b
- H?M?Resent-Message-Id: <$t.$i@$j>
- H?M?Message-Id: <$t.$i@$j>
-
-
- ########################################################################
- # #
- # REWRITING RULES #
- # #
- ########################################################################
-
-
- ########################################################################
- # #
- # The Complete Specification of Canonical Syntax is: #
- # #
- # <ahost> ::= /* ARPA type host name */ #
- # <uhost> ::= /* UUCP type host name */ #
- # <user> ::= /* target user name */ #
- # #
- # <route_node> ::= @<ahost>: | <uhost>! #
- # <route_path> ::= <NULL> | <route_node> | <route_path><route_node> #
- # <target> ::= <user> | <user>@<ahost> #
- # #
- # <address> ::= <route_path><target> #
- # #
- # This is what we handle, but actually we only look at the minimum #
- # required to pass the mail on. Intermediaries with other syntax/ #
- # semantics may be used, provided the addressing is compatible with #
- # them when the mail arrives there. #
- # #
- ########################################################################
-
-
- ########################################################################
- # #
- # THE DYNAMIC MACROS $f AND $g #
- # #
- # Macro $f is defined by the sender address as known the current #
- # host, via the ruleset sequence: 3, 1, 4. #
- # #
- # Macro $g is defined at delivery time for each separate mailer via #
- # the ruleset sequence: 3, 1, mailer-S, 4. #
- # #
- # The SMTP "MAIL FROM" address will be $g. #
- # #
- # $g is included in many headers and will be expanded if the header #
- # is newly created by sendmail. #
- # #
- ########################################################################
-
-
- ########################################################################
- # #
- # THE SMTP INTERFACE #
- # #
- # The SMTP "MAIL FROM" address will be $g. #
- # #
- # The SMTP "RCPT TO" addresses will be computed from the recipient #
- # addresses in sendmail by applying the same ruleset sequence as for #
- # "to" headers: namely, rulesets 3, 2, mailer-R, 4 #
- # #
- ########################################################################
-
-
- ########################################################################
- # #
- # S1: Sender Field Pre-rewriting #
- # #
- # This ruleset is used when defining the $f macro. In this case it #
- # is applied after S3 and before S4. #
- # #
- # This ruleset is applied to all sender type headers after S3 and #
- # before the mailer specific sender (S) rewrite rules. #
- # This ruleset is also applied to $f to create $g. #
- # #
- ########################################################################
- S1
-
-
- ########################################################################
- # #
- # S2: Recipient Field Pre-rewriting #
- # #
- # This ruleset is applied to the user part of the 3-tuple output from #
- # S0. It is followed by application of the mailer specific recipient #
- # [R] rewrite rules. #
- # #
- # This ruleset is applied to all recipient type headers after S3 and #
- # before the mailer specific recipient (R) rewrite rules. #
- # This ruleset is likewise used to reform the "to" address for SMTP. #
- # #
- ########################################################################
- S2
-
-
- ########################################################################
- # #
- # S4: Final Output Post-rewriting (Return to standard form) #
- # #
- # This ruleset is applied to the user part of the 3-tuple produced #
- # from ruleset 0. It is applied after the mailer specific recipient #
- # [R] rules. #
- # #
- # This ruleset is applied after S1 when defining the $f macro. #
- # This ruleset is applied last when creating the $g macro from $f. #
- # #
- # This ruleset is applied to all headers after the mailer specific #
- # rewrite rules (whether recipient or sender) have been applied. #
- # This ruleset is applied last when computing the RCPT TO address for #
- # SMTP. #
- # #
- ########################################################################
- S4
-
- #
- # Change LOCAL or LOCAL.D to the real name.
- #
- R$*<@LOCAL>$* $:$1<@$w>$2
- R$*<@LOCAL.D>$* $:$1<@$w$?D.$D$.>$2
- R$*<@$-.LOCAL>$* $:$1<@$2$?D.$D$.>$3
-
- R$*<LOCAL>$* $:$1<$w>$2
- R$*<LOCAL.D>$* $:$1<$w$?D.$D$.>$2
- R$*<$-.LOCAL>$* $:$1<$2$?D.$D$.>$3
-
- #
- # Remove focus brackets.
- #
- R$*<$+>$* $1$2$3
-
-
- ########################################################################
- # #
- # S3: Address Canonicalization (Internal rewriting form) #
- # #
- # This ruleset turns an address in external format into a format #
- # which simplifies internal rewriting. The inverse ruleset is S4. #
- # This ruleset is applied first to any external address before other #
- # rewriting is done. #
- # #
- # This concept of canonicalization is to be distinguished from usage #
- # of the nameserver in the $[/$] construct inside the RHS of rewrite #
- # rules. This is also sometimes called "canonicalization", but has #
- # to do not with the syntax of the address but with obtaining the #
- # correct domain name for the address. #
- # #
- # No stripping of local domains is done for route addresses: #
- # Rulesets which require this must do it themselves by iteratively #
- # stripping LOCAL or LOCAL.D and recalling this ruleset to #
- # canonicalize the next host.item. #
- # #
- # The term "localization" refers to determining whether the next host #
- # item is really a reference to the current host. Localization #
- # assumes that local UUCP host names are in class w. This is not #
- # strictly a necessary restriction, but it simplifies the network #
- # concept and also makes for simpler rewrite rules. This ruleset #
- # replaces explicit instances of local host with the internally #
- # recognized tag "LOCAL" or "LOCAL.D". #
- # #
- # Addresses which do not specify a host name for routing or domain #
- # will NOT have any reference to the local host appended in any way. #
- # #
- ########################################################################
- S3
-
- #
- # Basic textual canonicalization -- note RFC733 heuristic here.
- # This strips off everything but the innermost list between <>'s.
- # Some addresses are of the format: Full Name <address>
- #
- R$*<$*<$*<$+>$*>$*>$* $4 3-level <> nesting
- R$*<$*<$+>$*>$* $3 2-level <> nesting
- R$*<$+>$* $2 basic RFC821/822 parsing
-
- #
- # Turn an "at" token into "@".
- #
- # The I macro specifies space or some equivalent char defined by the OI
- # config option above.
- #
- R$+ at $+ $:$1@$2 "at" -> "@" for RFC 822
-
- # Change a%b to a@b. This implies that we support a%b%c... as a route
- # based address from right to left.
- # This form of addressing should go away as full domains are supported.
- #
- R$+%$- $1@$2
-
- # ====> NOTE <====
- # This configuration file always evaluates mix mode addresses from
- # left to right. No precedence between @ and ! is assumed. The
- # address a!b@c will resolve to the uucp mailer for the remote host
- # 'a'. This permits the resolution of very complex route based
- # addresses such as; @a:@b:c!d!user, a!@b:c!user, a!@b.uucp:user@c.
- # Return addresses on mail to/from AIX level 4 machines are also
- # correct. If you wish the address a!b@c to resolve to the TCP
- # mailer for the remote host 'c' then uncomment the following rewrite
- # rule. This approach is compatible with older versions of sendmail.
-
- # Change a!b@c to @c:a!b
- #R$-!$-@$+ @$3:$1!$2
-
- #
- # Change commas to colons for route addresses.
- #
- R$+,$+ $1:$2
-
- #
- # Pick out route addresses. Focus and call localizer.
- #
- R@$+:$+ $@$>9<@$1>:$2 handle <route-addr>
- R$-!$+ $@$>8<$1>!$2 UUCP route
-
- # Detect domain!user. Internally convert to user@domain (RFC976).
- # Rule set 8 will detect local addresses and strip any trailing
- # periods.
- R$-.$*!$+ $@$>8<$1.$2>!$3
-
- #
- # Detect local domain for nonroute addresses. Focus and localize.
- #
- R$+@$+ $:$1<@$2>
- R$+<@$=w.$D> $@$1<@LOCAL.D>
- R$+<@$=w> $@$1<@LOCAL>
- R$+<@$=w.UUCP> $@$1<@LOCAL>
-
- #
- # Anything else is left as-is! This includes simple names.
- # They will NOT have an appended domain.
- # This is so the $f macro definition will be the sender address
- # as known locally.
- #
-
-
- ########################################################################
- # #
- # S9: Localize ARPA type route path. #
- # #
- # This is used only by S3. #
- # #
- ########################################################################
- S9
-
- R<@$=w.$D>:$* $@<@LOCAL.D>:$2
- R<@$=w>:$* $@<@LOCAL>:$2
- R<@$=w.UUCP>:$* $@<@LOCAL>:$2
-
-
- ########################################################################
- # #
- # S8: Localize UUCP route path. This is used only by S3. #
- # #
- ########################################################################
- #S8
-
- #R<$=w.$D>!$+ $@<LOCAL.D>!$2
- #R<$=w>!$+ $@<LOCAL>!$2
- # We have a non-local domain. Change to user@domain for resolution.
- #R<$-.$+>!$+ $@<@$1.$2>:$3
- #R<$+.>!$+ $@<@$1>:$2
-
- ########################################################################
- # #
- # MAILERS #
- # #
- ########################################################################
-
-
- ########################################################################
- # #
- # Local and Program Mailer specification #
- # #
- ########################################################################
-
- #Mlocal, P=c:\etc\mail.exe, F=lsDFMP, S=10, R=20, A=c:\etc\mail $u
- Mlocal, P=c:\smtp\SMTP2ADEPT.exe, F=lsDFMP, S=10, R=20, A=c:\tcpip\etc\mail $u
- Mprog, P=/bin/sh, F=lsDFM, S=10, R=20, A=sh -c $u
-
-
- ########################################################################
- # #
- # S10: Local/Prog Mailers Sender rules #
- # #
- ########################################################################
- S10
-
- ########################################################################
- # #
- # S20: Local/Prog Mailers Recipient rules #
- # #
- ########################################################################
- S20
-
-
- ########################################################################
- # #
- # UUCP Mailer Specification #
- # #
- ########################################################################
-
- #Muucp, P=/usr/bin/uux, F=DFMhuU, S=13, R=23, M=100000,
- # A=uux - -r -n -a$f -gC $h!rmail ($u)
-
-
- ########################################################################
- # #
- # TCP Mailer Specification #
- # #
- ########################################################################
-
- Mtcp, P=[IPC], F=mDFMueXL, S=14, R=24, A=IPC $h
-
-
- ########################################################################
- # #
- # S14: TCP Mailer Sender Rules #
- # #
- # This ruleset is applied in the following circumstances: #
- # #
- # 1) To process sender type headers. These have header names: #
- # #
- # "resent-sender" #
- # "resent-from" #
- # "resent-reply-to" #
- # "sender" #
- # "from" #
- # "reply-to" #
- # "return-receipt-to" #
- # "errors-to" #
- # #
- # 2) To define the $g macro from the $f macro. #
- # #
- # In either case, it is applied after ruleset 1, and is followed by #
- # ruleset 4. #
- # #
- # Watch out if one of those headers is newly created and includes the #
- # expanded $g macro! This ruleset will have been used to create $g, #
- # and will then be applied to the result of the expansion of $g. #
- # This ruleset must handle this! #
- # #
- # The $g macro is used in many places. #
- # #
- ########################################################################
- S14
-
- #
- # We have just canonicalized a From: address or the $f macro. Remove
- # any instances of local host from route addresses. This also works
- # to take care of the instance of a newly expanded $g in a new
- # From: line.
- #
- R<$*LOCAL$*>$-$+ $>3$4
-
- #
- # Prepend our domain to route based paths that come through.
- #
- R<$+>$+ $@<@LOCAL.D>:$1$2
-
- #
- # Fully qualify our domain.
- #
- R$+<@LOCAL> $@$1<@LOCAL.D>
-
- #
- # Fully qualify other hosts in our local domain.
- #
- R$+<@$-> $@$1<@$2.LOCAL>
-
- #
- # Leave all other typical domain addresses alone.
- #
- R$+<$+> $@$1<$2>
-
- #
- # Append full local domain where none exists at all.
- #
- R$+ $@$1<@LOCAL.D>
-
-
- ########################################################################
- # #
- # S24: TCP Mailer Recipient rules #
- # #
- # This ruleset is applied in the following cases: #
- # #
- # 1) To process recipient type headers being sent out through this #
- # mailer. These headers are the ones with header names: #
- # #
- # "to" #
- # "resent-to" #
- # "cc" #
- # "resent-cc" #
- # "bcc" #
- # "resent-bcc" #
- # #
- # but NOT: #
- # #
- # "Apparently-to" #
- # #
- # 2) To process the user part of the 3-tuple from S0 which resolves #
- # to this mailer. This is the complete "to" address for ordinary #
- # tcp usage, or is the original UUCP path if we are relaying #
- # using DU. #
- # #
- # 3) To process the "to" address to form the SMTP RCPT TO address. #
- # #
- # In all cases, this ruleset is applied after ruleset 2, and is #
- # followed by ruleset 4. #
- # #
- # Remember that this ruleset applies to all "to" type headers in the #
- # mail transmitted via this mailer. This does not include #
- # "Apparently-to:" headers. Not all "To:" headers point to the #
- # current mail target! For instance, if the mail originated on this #
- # host and some targets were local, there may be local "To:" headers #
- # that must be processed by this ruleset! The idea here is to make #
- # sure that the headers will be properly understood in the context of #
- # the next host to which the mail will go. #
- # #
- ########################################################################
- S24
-
- #
- # Leave route based addresses alone. They are already completely intelligible
- # in any context.
- #
- R<$+>$+ $@<$1>$2
-
- #
- # Fully qualify our host name with full domain.
- #
- R$+<@LOCAL> $@$1<@LOCAL.D>
-
- #
- # Fully qualify nonlocal host names in our local domain.
- #
- R$+<@$-> $@$1<@$2.LOCAL>
-
- #
- # Leave all other typical domain addresses alone.
- #
- R$+<$+> $@$1<$2>
-
- #
- # Append full local domain where none exists at all. This handles the
- # case of local targets whose (missing) host would cause misunderstanding
- # in the next host.
- #
- R$+ $@$1<@LOCAL.D>
-
-
- ########################################################################
- # #
- # Rule Zero #
- # #
- # Resolve sender or recipient address to mailer/host/user 3-tuple. #
- # This may require iteration in use of S3 to strip leading route #
- # items which pertain to the current host. #
- # #
- # Sendmail will pass the user portion of the 3-tuple through ruleset #
- # 2 + the mailer specific recipient ruleset + ruleset 4. #
- # #
- ########################################################################
- S0
-
- #
- # Handle route addresses that begin with LOCAL or LOCAL.D
- #
- R<$*LOCAL$*>$-$+ $>3$4
-
- # Change a%b<$*> to <$*>:a@b.
- # This form of addressing should go away as full domains are supported.
- #
- R$+%$-<$*> <$3>:$1@$2
- #
- # Handle explicit local delivery.
- #
- # The entire prefix is treated as local user.
- R$+<@LOCAL$*> $#local$:$1
-
- #
- # Resolve UUCP to local uucp mailer or remote one via tcp.
- # For tcp relay, user is full uucp route. For uucp mailer, user is
- # the uucp route as seen from the next host.
- # UUCP host names are not passed through the nameserver canonicalizer.
- #
- #R$+<@$-.UUCP> $?U$#tcp$@$U$:$1<@$2.UUCP>$|$#uucp$@$2$:<$1>$.
- #R<@$-.UUCP>:$+ $?U$#tcp$@$U$:<@$1.UUCP>:$2$|$#uucp$@$1$:<$2>$.
- #R<$->!$+ $?U$#tcp$@$U$:<$1>!$2$|$#uucp$@$1$:<$2>$.
-
- #
- # Canonicalize anything else which has an @focus. This excludes simple
- # names, which are local.
- #
- R$*<@$+>$* $:$1<@$[$2$]>$3
-
- #
- # Send domain address to tcp. This includes domain literals [IP quads].
- # User is full focused path.
- #
- R$*<@$+>$* $#tcp$@$2$:$1<@$2>$3
-
- #
- # Remaining names must be local.
- # User is whatever is left.
- #
- R$+ $#local$:$1