Tải bản đầy đủ
[Appendix E] E.3 m4 sendmail Macros

[Appendix E] E.3 m4 sendmail Macros

Tải bản đầy đủ

[Appendix E] E.3 m4 sendmail Macros

Points to a source file that contains m4 SITE commands that define the UUCP sites connected
to this host. The format of the command is: SITECONFIG(file, local-hostname, class), which
reads the UUCP hostnames from file into class.
define
Defines a local value. Most "defines" are done in the m4 source files that are called by the .mc
file, not in the .mc file itself. It can define a value for a sendmail.cf macro, option, or other
command.
MAILER
Points to an m4 source file that contains the configuration commands that define a sendmail
mailer. A least one MAILER command must appear in the configuration file. Generally more
than one MAILER command is used.
LOCAL_RULE_n
Heads a section of code to be added to ruleset n, where n is 0, 1, 2, or 3. The code that follows
the LOCAL_RULE_n command is composed of standard sendmail.cf rewrite rules. [2] The
LOCAL_RULE_n command is rarely used.
[2] The one exception to this is the UUCPSMTP macro that can be used in the local
rule. See the New sendmail Configuration Files document that come with the sendmail
V8 distribution if you have questions about UUCP configuration.
LOCAL_CONFIG
Heads a section of code to be added to the sendmail.cf file after the local information section
and before the rewrite rules. The section of code contains standard sendmail.cf configuration
commands. This macro is rarely used.
Most of the macros in the .mc file point to other m4 source files. The macro names OSTYPE,
DOMAIN, FEATURE, MAILER, HACKS, and SITECONFIG are all names of subdirectories within
the sendmail/cf directory. The value passed to each of these macros is the name of a file within the
specified directory. For example, the command FEATURE(nouucp) tells m4 to load the file
nouucp.m4 from the feature directory and process the m4 source code found there. The real meat of
the sendmail configuration is contained in the source files pointed to by the OSTYPE, DOMAIN,
FEATURE, and MAILER commands.
The macro commands HACK, SITECONFIG, LOCAL_RULE_n, and LOCAL_CONFIG are rarely
used in a macro configuration file. To simplify this appendix, we do not mention them again. [3]
Likewise, for the sake of simplicity we avoid discussing UUCP configuration and concentrate on
SMTP. Still, m4 configuration can appear to be enormously complex. Please remember that this
appendix is a reference, and as such lists as many of the m4 macros as possible. Most of these you
will never need to use. Refer to Chapter 10 for a realistic example of how m4 is used to build a
sendmail.cf file.

file:///C|/mynapster/Downloads/warez/tcpip/appe_03.htm (2 of 21) [2001-10-15 09:19:31]

[Appendix E] E.3 m4 sendmail Macros

[3] To see examples of some of these commands, look at the ucbvax.mc sample file that
comes with the sendmail V8 distribution.
In the following section we provide additional information about the OSTYPE, DOMAIN,
FEATURE, and MAILER macros and details of the various commands used to build the m4 source
files they call. Chapter 10 provides an example of building a custom DOMAIN macro source file. The
source files can contain any of the macros we have already mentioned as well as the additional ones
documented below. The macro configuration (.mc) file also can contain any of the commands
documented below. In fact, pretty much any macro can appear in any file.
To bring some order out of this chaos, we have organized the commands according to the files they
are most likely to appear in, which is similar to the organization found in the documentation that
comes with sendmail distribution. Just remember, actual implementation files may have a different
organization. We start by examining the define macros and the FEATURE macros that are the
primary building blocks of all the other files.

E.3.1 define
The syntax of the define macro is:
define('parameter', 'value')
Where parameter is the keyword name of a sendmail configuration parameter and value is the
value assigned to that configuration parameter. The parameter and the value are normally
enclosed in single quotes to prevent inappropriate macro expansion.
Many of the configuration parameters that can be set using the define command are shown below.
Most of the parameters correspond to sendmail options, macros, or classes. The name of the option,
macro, or class set by the parameter is listed in the parameter description enclosed in square brackets
([]). Macro names begin with a dollar sign ($j), class names begin with a dollar sign and an equal sign
($=w), and options are shown with long option names (SingleThreadDelivery). To find out more
about these parameters, see the descriptions of the macros, options, and classes they represent that are
provided later in this appendix.
Because many define parameters are equivalent to options, macros, and classes, the command:
define('confDOMAIN_NAME', 'peanut.nuts.com')
placed in an m4 source file has the same effect as:
Djpeanut.nuts.com
placed directly in the sendmail.cf file. If you compile and install a new version of sendmail, build your
configuration with m4 and set values for macros, classes, and options with the m4 define macro.
file:///C|/mynapster/Downloads/warez/tcpip/appe_03.htm (3 of 21) [2001-10-15 09:19:31]

[Appendix E] E.3 m4 sendmail Macros

The list of define parameters is quite long. However, because most of the parameters default to a
reasonable value they do not have to be explicitly set in the m4 source file. The default value of each
parameter is shown in the listing - unless there is no default.
confMAILER_NAME
Default is MAILER-DAEMON. The sender name used on error messages. [$n]
confDOMAIN_NAME
The full hostname. [$j]
confCF_VERSION
The configuration file's version number. [$Z]
confFROM_HEADER
Default is $?x$x <$g>$|$g$. . The From: header format.
confRECEIVED_HEADER
Default is $?sfrom $s $.$?_($?s$|from $.$_) $.by $j ($v/$Z)$?r with
$r$. id $i$?u for $u$.; $b . The Received: header format.
confCW_FILE
Default is /etc/sendmail.cw. The file of local host aliases. [$=w]
confCT_FILE
Default is /etc/sendmail.ct. The file of trusted usernames. [$=t]
confTRUSTED_USERS
Trusted users name to add to root, uucp, and daemon.
confSMTP_MAILER
Default is esmtp. The mailer used for SMTP connections; must be smtp, smtp8, or esmtp.
confUUCP_MAILER
Default is uucp-old. The default UUCP mailer.
confLOCAL_MAILER
Default is local. The mailer used for local connections.
confRELAY_MAILER
Default is relay. The default mailer name for relaying.
confSEVEN_BIT_INPUT
Default is False. Force input to seven bits. [SevenBitInput]
file:///C|/mynapster/Downloads/warez/tcpip/appe_03.htm (4 of 21) [2001-10-15 09:19:31]

[Appendix E] E.3 m4 sendmail Macros

confEIGHT_BIT_HANDLING
Default is pass8. Defines how 8-bit data is handled. [EightBitMode]
confALIAS_WAIT
Default is 10m. The amount of time to wait for alias file rebuild. [AliasWait]
confMIN_FREE_BLOCKS
Default is 100. The minimum number of free blocks on the queue filesystem that must be
available to accept SMTP mail. [MinFreeBlocks]
confMAX_MESSAGE_SIZE
Default is infinite. The maximum message size. [MaxMessageSize]
confBLANK_SUB
The character used to replace unquoted blank characters in email addresses. [BlankSub]
confCON_EXPENSIVE
Default is False. Tells system to hold mail bound for mailers that have the e flag set until the
next queue run. [HoldExpensive]
confCHECKPOINT_INTERVAL
Default is 10. Tells system to checkpoint the queue files after this number of queued items are
processed. [CheckpointInterval]
confDELIVERY_MODE
Default is background. Sets the default delivery mode. [DeliveryMode]
confAUTO_REBUILD
Default is False. Automatically rebuilds alias file. [AutoRebuildAliases]
confERROR_MODE
Default is print. Defines how errors are handled. [ErrorMode]
confERROR_MESSAGE
Points to a file containing a message that is prepended to error messages. [ErrorHeader]
confSAVE_FROM_LINES
Tells system not to discard UNIX From: lines. They are discarded if this is not set.
[SaveFromLine]
confTEMP_FILE_MODE
Default is 0600. File mode for temporary files. [TempFileMode]
confMATCH_GECOS

file:///C|/mynapster/Downloads/warez/tcpip/appe_03.htm (5 of 21) [2001-10-15 09:19:31]

[Appendix E] E.3 m4 sendmail Macros

Tells system to match the email username to the GECOS field. This match is not done if this is
not set. [MatchGECOS]
confMAX_HOP
Default is 25. The counter used to determine mail loops. [MaxHopCount]
confIGNORE_DOTS
Default is False. Tells system to ignore dots in incoming messages. [IgnoreDots]
confBIND_OPTS
Default is undefined. Sets options for DNS resolver. [ResolverOptions]
confMIME_FORMAT_ERRORS*
Default is True. Tells system to send MIME-encapsulated error messages. [SendMimeErrors]
confFORWARD_PATH
Default is $z/.forward.$w:$z/.forward. Places to search for .forward files. [ForwardPath]
confMCI_CACHE_SIZE
Default is 2. The number of open connections that can be cached. [ConnectionCacheSize]
confMCI_CACHE_TIMEOUT
Default is 5m. The amount of time inactive open connections are held in the cache.
[ConnectionCacheTimeout]
confHOST_STATUS_DIRECTORY
Directory in which host status is saved. [HostStatusDirectory]
confUSE_ERRORS_TO*
Default is False. Delivers errors using the Errors-To: header. [UserErrorsTo]
confLOG_LEVEL
Default is 9. Level of detail for the logfile. [LogLevel]
confME_TOO
Default is False. Sends a copy to the sender. [MeToo]
confCHECK_ALIASES
Default is False. Looks up every alias during alias file build. [CheckAliases]
confOLD_STYLE_HEADERS*
Default is True. Treats headers without special chars as old style. [OldStyleHeaders]
confDAEMON_OPTIONS

file:///C|/mynapster/Downloads/warez/tcpip/appe_03.htm (6 of 21) [2001-10-15 09:19:31]

[Appendix E] E.3 m4 sendmail Macros

SMTP daemon options. [DaemonPortOptions]
confPRIVACY_FLAGS
Default is authwarnings. These flags restrict the use of some mail commands. [PrivacyOptions]
confCOPY_ERRORS_TO
Address to receive copies of error messages. [PostmasterCopy]
confQUEUE_FACTOR
Default is 600000. Used to calculate when a loaded system should queue mail instead of
attempting delivery. [QueueFactor]
confDONT_PRUNE_ROUTES
Default is False. Don't prune route-addresses to the minimum possible. [DontPruneRoutes]
confSAFE_QUEUE
Create a queue file, then attempt delivery. This is not done unless this paramter is specified.
[SuperSafe]
confTO_INITIAL
Default is 5m. Maximum time to wait for the initial connect response. [Timeout.initial]
confTO_CONNECT
Default is 0. Maximum time to wait for a connect to complete. [Timeout.connect]
confTO_ICONNECT
Maximum time to wait for the very first connect attempt to a host. [Timeout.iconnect]
confTO_HELO
Default is 5m. Maximum time to wait for a HELO or EHLO response. [Timeout.helo]
confTO_MAIL
Default is 10m. Maximum time to wait for a MAIL command response. [Timeout.mail]
confTO_RCPT
Default is 1h. Maximum time to wait for a RCPT command response. [Timeout.rcpt]
confTO_DATAINIT
Default is 5m. Maximum time to wait for a DATA command response. [Timeout.datainit]
confTO_DATABLOCK
Default is 1h. Maximum time to wait for a block during DATA phase. [Timeout.datablock]
confTO_DATAFINAL

file:///C|/mynapster/Downloads/warez/tcpip/appe_03.htm (7 of 21) [2001-10-15 09:19:31]

[Appendix E] E.3 m4 sendmail Macros

Default is 1h. Maximum time to wait for a response to the terminating ".". [Timeout.datafinal]
confTO_RSET
Default is 5m. Maximum time to wait for a RSET command response. [Timeout.rset]
confTO_QUIT
Default is 2m. Maximum time to wait for a QUIT command response. [Timeout.quit]
confTO_MISC
Default is 2m. Maximum time to wait for other SMTP command responses. [Timeout.misc]
confTO_COMMAND
Default is 1h. Maximum time to wait for a command to be issued. [Timeout.command]
confTO_IDENT
Default is 30s. Maximum time to wait for an IDENT query response. [Timeout.ident]
confTO_FILEOPEN
Default is 60s. Maximum time to wait for a file open. [Timeout.fileopen]
confTO_QUEUERETURN
Default is 5d. Time until a message is returned from the queue as undeliverable.
[Timeout.queuereturn]
confTO_QUEUERETURN_NORMAL
"Undeliverable" timeout for normal priority messages. [Timeout.queuereturn.normal]
confTO_QUEUERETURN_URGENT
"Undeliverable" timeout for urgent priority messages. [Timeout.queuereturn.urgent]
confTO_QUEUERETURN_NONURGENT
"Undeliverable" timeout for low priority messages. [Timeout.queuereturn.non-urgent]
confTO_QUEUEWARN
Default is 4h. Time until a "still queued" warning is sent about a message.
[Timeout.queuewarn]
confTO_QUEUEWARN_NORMAL
Time until a "still queued" warning is sent for normal priority messages.
[Timeout.queuewarn.normal]
confTO_QUEUEWARN_URGENT
Time until a "still queued" warning is sent for urgent priority messages.
[Timeout.queuewarn.urgent]

file:///C|/mynapster/Downloads/warez/tcpip/appe_03.htm (8 of 21) [2001-10-15 09:19:31]

[Appendix E] E.3 m4 sendmail Macros

confTO_QUEUEWARN_NONURGENT
Time until a "still queued" warning is sent for low priority messages. [Timeout.queuewarn.nonurgent]
confTO_HOSTSTATUS
Default is 30m. Timer for stale host status information. [Timeout.hoststatus]
confTIME_ZONE
Default is USE_SYSTEM. Sets time zone from the system (USE_SYSTEM) or the TZ variable
(USE_TZ). [TimeZoneSpec]
confDEF_USER_ID
Default is 1:1. Default user ID and group ID. [DefaultUser]
confUSERDB_SPEC
Path of the user database file. [UserDatabaseSpec]
confFALLBACK_MX
Backup MX host. [FallbackMXhost]
confTRY_NULL_MX_LIST
Default is False. Instructs system to connect to the remote host directly if the MX point to the
local host. [TryNullMXList]
confQUEUE_LA
Default is 8. Sends mail directly to the queue when this load average is reached. [QueueLA]
confREFUSE_LA
Default is 12. Refuses incoming SMTP connections at this load average. [RefuseLA]
confMAX_DAEMON_CHILDREN
If set, refuses connection when this number of children is reached. [MaxDaemonChildren]
confCONNECTION_RATE_THROTTLE
Maximum number of connections permitted per second, if set. [ConnectionRateThrottle]
confWORK_RECIPIENT_FACTOR
Default is 30000. Factor used to lower the priority of a job for each additional recipient.
[RecipientFactor]
confSEPARATE_PROC
Default is False. Delivers messages with separate processes. [ForkEachJob]
confWORK_CLASS_FACTOR

file:///C|/mynapster/Downloads/warez/tcpip/appe_03.htm (9 of 21) [2001-10-15 09:19:31]

[Appendix E] E.3 m4 sendmail Macros

Default is 1800. The factor used to favor a high-priority job. [ClassFactor]
confWORK_TIME_FACTOR
Default is 90000. Factor used to lower the priority of a job for each delivery attempt.
[RetryFactor]
confQUEUE_SORT_ORDER
Default is Priority. Sorts queue by Priority or Host order. [QueueSortOrder]
confMIN_QUEUE_AGE
Default is 0. Minimum time a job must be queued. [MinQueueAge]
confDEF_CHAR_SET
Default is unknown-8bit. Default character set for unlabeled 8-bit MIME data.
[DefaultCharSet]
confSERVICE_SWITCH_FILE
Default is /etc/service.switch. The path to the service switch file. [ServiceSwitchFile]
confHOSTS_FILE
Default is /etc/hosts. The path to the hostnames file. [HostsFile]
confDIAL_DELAY
Default is 0s. Amount of time to delay before retrying a "dial on demand" connection. 0s
means "don't retry". [DialDelay]
confNO_RCPT_ACTION
Default is none. Handling for mail with no recipient headers: do nothing (none); add To:
header (add-to); add Apparently-To: header (add-apparently-to); add a Bcc: header (addbcc); add "To: undisclosed-recipients" header (add-to-undisclosed). [NoRecipientAction]
confSAFE_FILE_ENV
Default is undefined. chroot() to this directory before writing files. [SafeFileEnvironment]
confCOLON_OK_IN_ADDR
Default is True. Treats colons as regular characters in addresses. [ColonOkInAddr]
confMAX_QUEUE_RUN_SIZE
Default is 0. Limits the number of entries processed in a queue run. 0 means no limit.
[MaxQueueRunSize]
confDONT_EXPAND_CNAMES
Default is False. If true, don't convert nicknames to canonical names. False means "do
convert." [DontExpandCnames]
file:///C|/mynapster/Downloads/warez/tcpip/appe_03.htm (10 of 21) [2001-10-15 09:19:31]

[Appendix E] E.3 m4 sendmail Macros

confFROM_LINE
Default is From $g $d. The format of the UNIX From: line. [UnixFromLine]
confOPERATORS
Default is .:%@!^/[]+. Address operator characters. [OperatorChars]
confSMTP_LOGIN_MSG
Default is $j sendmail $v/$Z; $b. The SMTP greeting message. [SmtpGreetingMessage]
confDONT_INIT_GROUPS
Default is False. If true, disable the initgroups(3) routine. False means "use the initgroups(3)
routine. [DontInitGroups]
confUNSAFE_GROUP_WRITES
Default is False. If true, don't reference programs or file from group-writable :include: and
.forward files. [UnsafeGroupWrites]
confDOUBLE_BOUNCE_ADDRESS
Default is postmaster. When errors occur sending an error message, send the second error
message to this address. [DoubleBounceAddress]
confRUN_AS_USER
Default is undefined. Run as this user to read and deliver mail. [RunAsUser]
confSINGLE_THREAD_DELIVERY
Default is False. Force single threaded mail deliver when set with HostStatusDirectory.
[SingleThreadDelivery]
define macros are the most common macros in the m4 source files. The next most commonly used
macro is the FEATURE macro.

E.3.2 FEATURE
The FEATURE macro processes m4 source code from the cf/feature directory. Source files in that
directory define optional sendmail features that you may wish to include in your configuration. The
syntax of the FEATURE macro is:
FEATURE(name, [argument])
The FEATURE source file can be called with or without an optional argument. If an argument is
passed to the source file the argument is used by the source file to generate code for the sendmail.cf
file. For example:

file:///C|/mynapster/Downloads/warez/tcpip/appe_03.htm (11 of 21) [2001-10-15 09:19:31]

[Appendix E] E.3 m4 sendmail Macros

FEATURE(mailertable, dbm /usr/lib/mailertable)
generates the code for accessing the mailertable and defines that table as being a dbm database located
in the file /usr/lib/mailertable.
There are several features available in sendmail V8. They are all listed in Table 13.6 The table
provides the name of each feature and its purpose.
Table E.3: sendmail V8 Features
Name
Purpose
use_cw_file
Load $=w from /etc/sendmail.cw.
use_ct_file
Load $=t from /etc/sendmail.ct.
redirect
Support the .REDIRECT pseudo-domain.
nouucp
Don't include UUCP address processing.
nocanonify
Don't convert names with $[ ... $] syntax.
stickyhost
Treat "user" different than "user@local.host".[4]
mailertable
Mail routing using a mailer table.
domaintable
Domain name mapping using a domain table.
bitdomain
Use a table to map bitnet hosts to Internet addresses.
uucpdomain
Use a table to map UUCP hosts to Internet addresses.
always_add_domain
Add the local hostname to all locally delivered mail.
allmasquerade
Also masquerade recipient addresses.
limited_masquerade
Only masquerade hosts listed in $=M.
masquerade_entire_domain Masquerade all hosts within the masquerading domains.
genericstable
Use a table to rewrite local addresses.
virtusertable
Maps virtual domain names to real mail addresses.
nodns
Don't include DNS support.
nullclient
Forwarding all mail to a central server.
local_procmail
Use procmail as the local mailer.
bestmx_is_local
Accept mail as local when it is addressed to a host that lists us as its MX
server.
smrsh
Use smrsh as the prog mailer.
[4] See the discussion of "stickyhost" in the "DOMAIN" section later in this appendix.
The use_cw_file and the use_ct_file features are equivalent to Fw/etc/sendmail.cw and
Fw/etc/sendmail.ct commands in the sendmail.cf file. See Chapter 10 for descriptions of host aliases
($=w) and trusted users ($=t).

file:///C|/mynapster/Downloads/warez/tcpip/appe_03.htm (12 of 21) [2001-10-15 09:19:31]