Tweaking Configuration Options

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 NameConfigurationDescription & [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).


[Back] [Next] [Up]