There are a large number of configuration options that don't normally need to be changed. However, if you feel you need to tweak them, you can define the following M4 variables. This list is shown in three columns: the name you define, the option or macro that is affected (either Ox for an option or Dx for a macro), and the default value for that definition and a brief description. Greater detail of the semantics can be found in the Installation and Operations Guide.
Some options are likely to be deprecated in future versions -- that is, the option is only included to provide back-compatibility. These are marked with "*".
Remember that these options are M4 variables, and hence may need to be quoted. In particular, arguments with commas will usually have to be ``double quoted, like this phrase'' to avoid having the comma confuse things. This is common for alias file definitions and for the read timeout.
M4 Variable Name | Configuration | Description & [Default] |
---|---|---|
confMAILER_NAME | $n macro | [MAILER-DAEMON] The sender name used for internally generated outgoing messages. |
confDOMAIN_NAME | $j macro | If defined, sets $j . This should
only be done if your system cannot
determine your local domain name,
and then it should be set to
$w.Foo.COM , where Foo.COM is your
domain name. |
confCF_VERSION | $Z macro | If defined, this is appended to the configuration version name. |
confFROM_HEADER | From: | [$?x$x <$g>$|$g$.] The format of an
internally generated From: address. |
confRECEIVED_HEADER | Received: | [$?sfrom $s $.$?_($?s$|from $.$_) $.by $j ($v/$Z)$?r with $r$. id $i$?u for $u; $|; $.$b] The format of the Received: header
in messages passed through this host.
It is unwise to try to change this. |
confCW_FILE | Fw class | [/etc/sendmail.cw] Name of file used
to get the local additions to the $=w
(local host names) class. |
confCT_FILE | Ft class | [/etc/sendmail.ct] Name of file used
to get the local additions to the $=t
(trusted users) class. |
confTRUSTED_USERS | Ct class | [no default] Names of users to add to
the list of trusted users. This list
always includes root, uucp, and daemon.
See also FEATURE(use_ct_file) . |
confSMTP_MAILER | - | [esmtp] The mailer name used when
SMTP connectivity is required.
One of "smtp" , "smtp8" ,
or "esmtp" . |
confUUCP_MAILER | - | [uucp-old] The mailer to be used
by default for bang-format recipient
addresses. See also discussion of
$=U , $=Y , and $=Z in the
MAILER(uucp) section. |
confLOCAL_MAILER | - | [local] The mailer name used when
local connectivity is required.
Almost always "local" . |
confRELAY_MAILER | - | [relay] The default mailer name
used for relaying any mail (e.g., to a
BITNET_RELAY , a
SMART_HOST , or
whatever). This can reasonably be
"uucp-new" if you are on a
UUCP-connected site. |
confSEVEN_BIT_INPUT | SevenBitInput | [False] Force input to seven bits? |
confEIGHT_BIT_HANDLING | EightBitMode | [pass8] 8-bit data handling |
confALIAS_WAIT | AliasWait | [10m] Time to wait for alias file rebuild until you get bored and decide that the apparently pending rebuild failed. |
confMIN_FREE_BLOCKS | MinFreeBlocks | [100] Minimum number of free blocks on
queue file system to accept SMTP mail.
(Prior to 8.7 this was minfree/maxsize,
where minfree was the number of free
blocks and maxsize was the maximum
message size. Use
confMAX_MESSAGE_SIZE
for the second value now.) |
confMAX_MESSAGE_SIZE | MaxMessageSize | [infinite] The maximum size of messages that will be accepted (in bytes). |
confBLANK_SUB | BlankSub | [.] Blank (space) substitution character. |
confCON_EXPENSIVE | HoldExpensive | [False] Avoid connecting immediately to mailers marked expensive? |
confCHECKPOINT_INTERVAL | CheckpointInterval | [10] Checkpoint queue files every N recipients. |
confDELIVERY_MODE | DeliveryMode | [background] Default delivery mode. |
confAUTO_REBUILD | AutoRebuildAliases | [False] Automatically rebuild alias file if needed. |
confERROR_MODE | ErrorMode | [print] Error message mode. |
confERROR_MESSAGE | ErrorHeader | [undefined] Error message header/file. |
confSAVE_FROM_LINES | SafeFromLine | Save extra leading From_ lines. |
confTEMP_FILE_MODE | TempFileMode | [0600] Temporary file mode. |
confMATCH_GECOS | MatchGECOS | [True] Match GECOS field. |
confMAX_HOP | MaxHopCount | [25] Maximum hop count. |
confIGNORE_DOTS* | IgnoreDots | [False; always False in -bs or -bd mode] Ignore dot as terminator for incoming messages? |
confBIND_OPTS | ResolverOptions | [undefined] Default options for DNS resolver. |
confMIME_FORMAT_ERRORS* | SendMimeErrors | [True] Send error messages as MIME- encapsulated messages per RFC 1344. |
confFORWARD_PATH | ForwardPath | [$z/.forward.$w:$z/.forward]
The colon-separated list of places to
search for .forward files. N.B.: see
the Security Notes section. |
confMCI_CACHE_SIZE | ConnectionCacheSize | [2] Size of open connection cache. |
confMCI_CACHE_TIMEOUT | ConnectionCacheTimeout | [5m] Open connection cache timeout. |
confHOST_STATUS_DIRECTORY | HostStatusDirectory | [undefined] If set, host status is kept on disk between sendmail runs in the named directory tree. This need not be a full pathname, in which case it is interpreted relative to the queue directory. |
confSINGLE_THREAD_DELIVERY | SingleThreadDelivery | [False] If this option and the HostStatusDirectory option are both set, single thread deliveries to other hosts. That is, don't allow any two sendmails on this host to connect simultaneously to any other single host. This can slow down delivery in some cases, in particular since a cached but otherwise idle connection to a host will prevent other sendmails from connecting to the other host. |
confUSE_ERRORS_TO* | UserErrorsTo | [False] Use the Errors-To: header to
deliver error messages. This should
not be necessary because of general
acceptance of the envelope/header
distinction. |
confLOG_LEVEL | LogLevel | [9] Log level. |
confME_TOO | MeToo | [False] Include sender in group expansions. |
confCHECK_ALIASES | CheckAliases | [False] Check RHS of aliases when running newaliases. Since this does DNS lookups on every address, it can slow down the alias rebuild process considerably on large alias files. |
confOLD_STYLE_HEADERS* | OldStyleHeaders | [True] Assume that headers without special chars are old style. |
confDAEMON_OPTIONS | DaemonPortOptions | [none] SMTP daemon options. |
confPRIVACY_FLAGS | PrivacyOptions | [authwarnings] Privacy flags. |
confCOPY_ERRORS_TO | PostmasterCopy | [undefined] Address for additional copies of all error messages. |
confQUEUE_FACTOR | QueueFactor | [600000] Slope of queue-only function. |
confDONT_PRUNE_ROUTES | DontPruneRoutes | [False] Don't prune down route-addr syntax addresses to the minimum possible. |
confSAFE_QUEUE* | SuperSafe | [True] Commit all messages to disk before forking. |
confTO_INITIAL | Timeout.initial | [5m] The timeout waiting for a response on the initial connect. |
confTO_CONNECT | Timeout.connect | [0] The timeout waiting for an initial
connect() to complete. This can only
shorten connection timeouts; the kernel
silently enforces an absolute maximum
(which varies depending on the system). |
confTO_ICONNECT | Timeout.iconnect | [undefined] Like Timeout.connect , but
applies only to the very first attempt
to connect to a host in a message.
This allows a single very fast pass
followed by more careful delivery
attempts in the future. |
confTO_HELO | Timeout.helo | [5m] The timeout waiting for a response
to a HELO or EHLO command. |
confTO_MAIL | Timeout.mail | [10m] The timeout waiting for a
response to the MAIL command. |
confTO_RCPT | Timeout.rcpt | [1h] The timeout waiting for a response
to the RCPT command. |
confTO_DATAINIT | Timeout.datainit | [5m] The timeout waiting for a 354
response from the DATA command. |
confTO_DATABLOCK | Timeout.datablock | [1h] The timeout waiting for a block
during DATA phase. |
confTO_DATAFINAL | Timeout.datafinal | [1h] The timeout waiting for a response to the final "." that terminates a message. |
confTO_RSET | Timeout.rset | [5m] The timeout waiting for a response
to the RSET command. |
confTO_QUIT | Timeout.quit | [2m] The timeout waiting for a response
to the QUIT command. |
confTO_MISC | Timeout.misc | [2m] The timeout waiting for a response to other SMTP commands. |
confTO_COMMAND | Timeout.command | [1h] In server SMTP, the timeout waiting for a command to be issued. |
confTO_IDENT | Timeout.ident | [30s] The timeout waiting for a response to an IDENT query. |
confTO_FILEOPEN | Timeout.fileopen | [60s] The timeout waiting for a file
(e.g., :include: file) to be opened. |
confTO_QUEUERETURN | Timeout.queuereturn | [5d] The timeout before a message is returned as undeliverable. |
confTO_QUEUERETURN_NORMAL | Timeout.queuereturn.normal | [undefined] As above, for normal priority messages. |
confTO_QUEUERETURN_URGENT | Timeout.queuereturn.urgent | [undefined] As above, for urgent priority messages. |
confTO_QUEUERETURN_NONURGENT | Timeout.queuereturn.non-urgent | [undefined] As above, for non-urgent (low) priority messages. |
confTO_QUEUEWARN | Timeout.queuewarn | [4h] The timeout before a warning message is sent to the sender telling them that the message has been deferred. |
confTO_QUEUEWARN_NORMAL | Timeout.queuewarn.normal | [undefined] As above, for normal priority messages. |
confTO_QUEUEWARN_URGENT | Timeout.queuewarn.urgent | [undefined] As above, for urgent priority messages. |
confTO_QUEUEWARN_NONURGENT | Timeout.queuewarn.non-urgent | [undefined] As above, for non-urgent (low) priority messages. |
confTO_HOSTSTATUS | Timeout.hoststatus | [30m] How long information about host statuses will be maintained before it is considered stale and the host should be retried. This applies both within a single queue run and to persistent information (see below). |
confTIME_ZONE | TimeZoneSpec | [USE_SYSTEM] Time zone info -- can be
USE_SYSTEM to use the system's idea,
USE_TZ to use the user's TZ envariable,
or something else to force that value. |
confDEF_USER_ID | DefaultUser | [1:1] Default user id. |
confUSERDB_SPEC | UserDatabaseSpec | [undefined] User database specification. |
confFALLBACK_MX | FallbackMXhost | [undefined] Fallback MX host. |
confTRY_NULL_MX_LIST | TryNullMXList | [False] If we are the best MX for a host and haven't made other arrangements, try connecting to the host directly; normally this would be a config error. |
confQUEUE_LA | QueueLA | [8] Load average at which queue-only function kicks in. |
confREFUSE_LA | RefuseLA | [12] Load average at which incoming SMTP connections are refused. |
confMAX_DAEMON_CHILDREN | MaxDaemonChildren | [undefined] The maximum number of children the daemon will permit. After this number, connections will be rejected. If not set or <= 0, there is no limit. |
confCONNECTION_RATE_THROTTLE | ConnectionRateThrottle | [undefined] The maximum number of connections permitted per second. After this many connections are accepted, further connections will be delayed. If not set or <= 0, there is no limit. |
confWORK_RECIPIENT_FACTOR | RecipientFactor | [30000] Cost of each recipient. |
confSEPARATE_PROC | ForkEachJob | [False] Run all deliveries in a separate process. |
confWORK_CLASS_FACTOR | ClassFactor | [1800] Priority multiplier for class. |
confWORK_TIME_FACTOR | RetryFactor | [90000] Cost of each delivery attempt. |
confQUEUE_SORT_ORDER | QueueSortOrder | [Priority] Queue sort algorithm:
Priority , Host , or Time . |
confMIN_QUEUE_AGE | MinQueueAge | [0] The minimum amount of time a job must sit in the queue between queue runs. This allows you to set the queue run interval low for better responsiveness without trying all jobs in each run. |
confDEF_CHAR_SET | DefaultCharSet | [unknown-8bit] When converting unlabeled 8 bit input to MIME, the character set to use by default. |
confSERVICE_SWITCH_FILE | ServiceSwitchFile | [/etc/service.switch] The file to use for the service switch on systems that do not have a system-defined switch. |
confHOSTS_FILE | HostsFile | [/etc/hosts] The file to use when doing "file" type access of hosts names. |
confDIAL_DELAY | DialDelay | [0s] If a connection fails, wait this long and try again. Zero means "don't retry". This is to allow "dial on demand" connections to have enough time to complete a connection. |
confNO_RCPT_ACTION | NoRecipientAction | [none] What to do if there are no legal
recipient fields (To: , Cc: or Bcc: )
in the message. Legal values can
be "none" to just leave the
nonconforming message as is, "add-to"
to add a To: header with all the
known recipients (which may expose
blind recipients), "add-apparently-to"
to do the same but use Apparently-To:
instead of To:, "add-bcc" to add an
empty Bcc: header, or
"add-to-undisclosed" to add the header
``To: undisclosed-recipients:;'' . |
confSAFE_FILE_ENV | SafeFileEnvironment | [undefined] If set, sendmail will do a
chroot() into this directory before
writing files. |
confCOLON_OK_IN_ADDR | ColonOkInAddr | [True unless Configuration Level >= 6] If set, colons are treated as a regular character in addresses. If not set, they are treated as the introducer to the RFC 822 "group" syntax. Colons are handled properly in route-addrs. This option defaults on for V5 and lower configuration files. |
confMAX_QUEUE_RUN_SIZE | MaxQueueRunSize | [0] If set, limit the maximum size of any given queue run to this number of entries. Essentially, this will stop reading the queue directory after this number of entries are reached; it does _not_ pick the highest priority jobs, so this should be as large as your system can tolerate. If not set, there is no limit. |
confDONT_EXPAND_CNAMES | DontExpandCnames | [False] If set, $[ ... $] lookups that do DNS based lookups do not expand CNAME records. This currently violates the published standards, but the IETF seems to be moving toward legalizing this. For example, if "FTP.Foo.ORG" is a CNAME for "Cruft.Foo.ORG", then with this option set a lookup of "FTP" will return "FTP.Foo.ORG"; if clear it returns "Cruft.FOO.ORG". N.B. you may not see any effect until your downstream neighbors stop doing CNAME lookups as well. |
confFROM_LINE | UnixFromLine | [From $g $d] The From_ line used
when sending to files or programs. |
confOPERATORS | OperatorChars | [.:%@!^/[]+] Address operator characters. |
confSMTP_LOGIN_MSG | SmtpGreetingMessage | [$j Sendmail $v/$Z; $b]
The initial (spontaneous) SMTP
greeting message. The word "ESMTP"
will be inserted between the first and
second words to convince other
sendmails to try to speak ESMTP. |
confDONT_INIT_GROUPS | DontInitGroups | [False] If set, the initgroups(3) routine will never be invoked. You might want to do this if you are running NIS and you have a large group map, since this call does a sequential scan of the map; in a large site this can cause your ypserv to run essentially full time. If you set this, agents run on behalf of users will only have their primary (/etc/passwd) group permissions. |
confUNSAFE_GROUP_WRITES | UnsafeGroupWrites | [False] If set, group-writable
:include: and .forward files are
considered "unsafe", that is, programs
and files cannot be directly referenced
from such files. World-writable files
are always considered unsafe. |
confDOUBLE_BOUNCE_ADDRESS | DoubleBounceAddress | [postmaster] If an error occurs when sending an error message, send that "double bounce" error message to this address. |
confRUN_AS_USER | RunAsUser | [undefined] If set, become this user
when reading and delivering mail.
Causes all file reads (e.g., .forward
and :include: files) to be done as
this user. Also, all programs will
be run as this user, and all output
files will be written as this user.
Intended for use only on firewalls
where users do not have accounts. |
See also the description of OSTYPE
for some parameters that can be tweaked (generally pathnames to mailers).