Appendix A. The mc Configuration Macros and Directives

Appendix A. The mc Configuration Macros and Directives

The m4 method of creating a configuration file is introduced in Chapter 4, but that chapter details only about one-third of the mc configuration macros and directives that are available. The others are documented in chapters that deal directly with a particular aspect of the configuration file. To facilitate the process of locating these items, and to provide you with a way to see how they interrelate, this Appendix lists the mc configuration macros and directives in alphabetical order.

Note that most of these mc macros are defined with the define method. For example:

define(`ALIAS_FILE', `/etc/mail/aliases')

These we show without trailing parentheses in the table. Others are self-defining. For example:

CANONIFY_DOMAIN_FILE(`/etc/mail/canonify-domains')

These we show with trailing parentheses in the table. For example:

ALIAS_FILE              use define( )
CANONIFY_DOMAIN_FILE( )  use by itself

Table A-1. mc configuration macros and directives

Item

§

Description

ALIAS_FILE

AliasFile

Define the location of the aliases files

BITNET_RELAY

$B

Define the BITNET relay host

CANONIFY_DOMAIN( )

FEATURE(nocanonify)

Add a value to the $={Canonify} class

CANONIFY_DOMAIN_FILE( )

FEATURE(nocanonify)

Add values to the $={Canonify}class from a file

CLIENT_OPTIONS( )

ClientPortOptions

Define client port option settings

confALIAS_WAIT

AliasWait

Wait for an aliases rebuild to complete

confALLOW_BOGUS_HELO

AllowBogusHELO

Allow HELO or EHLO sans host

confAUTH_MAX_BITS

AuthMaxBits

Limit max encryption strength for SASL

confAUTH_MECHANISMS

AuthMechanisms

List the AUTH mechanisms

confAUTH_OPTIONS

AuthOptions

Tune authentication parameters

confAUTO_REBUILD

AutoRebuildAliases

Rebuild aliases automatically (deprecated)

confBAD_RCPT_THROTTLE

BadRcptThrottle

Slow excess bad SMTP RCPT commands

confBIND_OPTS

ResolverOptions

Set DNS resolver options

confBLANK_SUB

BlankSub

Define the blank-substitution character in rewriting

confCACERT

CACertFile

File containing certificate for certificate authorities

confCACERT_PATH

CACertPath

Directory with certificates of certificate authorities

confCF_VERSION

$Z

The version of the mc configuration

confCHECKPOINT_INTERVAL

CheckpointInterval

How often to checkpoint the qf file

confCHECK_ALIASES

CheckAliases

Check the righthand side of aliases

confCLIENT_CERT

Section 10.10.5

Location of the client (outbound) digital certificate

confCLIENT_KEY

Section 10.10.5

Location of the key file for the client (outbound) digital certificate

confCLIENT_OPTIONS

ClientPortOptions

Define client port option settings (deprecated)

confCOLON_OK_IN_ADDR

ColonOkInAddr

Allow colons in addresses

confCONNECTION_RATE_THROTTLE

ConnectionRateThrottle

When to throttle the incoming SMTP connection rate

confCONNECT_ONLY_TO

ConnectOnlyTo

Send only to this host

confCONTROL_SOCKET_NAME

ControlSocketName

Define the path of the control socket

confCON_EXPENSIVE

HoldExpensive

Queue when using expensive delivery agents

confCOPY_ERRORS_TO

PostmasterCopy

Extra copies of bounce messages

confCR_FILE

$=R

File to read for hosts for whom to relay

confCT_FILE

FEATURE(use_ct_file)

File to read for a list of trusted users

confCW_FILE

FEATURE(use_cw_file)

File to read for a list of alternative names for the local host

confDAEMON_OPTIONS

DaemonPortOptions

Set options for the listening daemon (deprecated)

confDEAD_LETTER_DROP

DeadLetterDrop

Define dead.letter file location

confDEF_AUTH_INFO

DefaultAuthInfo

Source of AUTH information (deprecated)

confDEF_CHAR_SET

DefaultCharSet

Define the default Content-Type: header character set

confDEF_GROUP_ID

DefaultUser

Define the default user's group (deprecated)

confDEF_USER_ID

DefaultUser

Define the default user

confDELAY_LA

DelayLA

Add a one-second SMTP sleep on high load

confDELIVERY_MODE

DeliveryMode

Set sendmail's delivery mode

confDELIVER_BY_MIN

DeliverByMin

Set DELIVERBY minimum

confDEQUOTE_OPTS

dequote

Add dequote database-map switches

confDF_BUFFER_SIZE

DataFileBufferSize

Define the buffered-I/O df limit

confDH_PARAMETERS

DHParameters

Parameters for DSA/DH cipher suite

confDIAL_DELAY

DialDelay

Set the connect failure retry time

confDIRECT_SUBMISSION_MODIFIERS

DirectSubmissionModifiers

Define daemon flags for command-line submission

confDOMAIN_NAME

$j

The official canonical name

confDONT_BLAME_SENDMAIL

DontBlameSendmail

Prevent file security checks

confDONT_EXPAND_CNAMES

DontExpandCnames

Prevent CNAME expansion

confDONT_INIT_GROUPS

DontInitGroups

Don't use initgroups(3)

confDONT_PROBE_INTERFACES

DontProbeInterfaces

Don't probe interfaces for $=w

confDONT_PRUNE_ROUTES

DontPruneRoutes

Don't prune route addresses

confDOUBLE_BOUNCE_ADDRESS

DoubleBounceAddress

Where to send errors about bounce delivery errors

confEIGHT_BIT_HANDLING

EightBitMode

How to convert 8-bit input

confERROR_MESSAGE

ErrorHeader

Set error message header

confERROR_MODE

ErrorMode

Specify mode of error handling

confFALLBACK_MX

FallbackMXhost

Specify Fallback MX host

confFAST_SPLIT

FastSplit

Suppress MX lookups on initial submission

confFORWARD_PATH

ForwardPath

Set the forward file search path

confFROM_HEADER

Section 25.7

Define the format for the From: header

confFROM_LINE

UnixFromLine

Define the five-character "From " format

confHOSTS_FILE

HostsFile

Specify an alternate /etc/hosts file

confHOST_STATUS_DIRECTORY

HostStatusDirectory

Specify the location of persistent host status

confIGNORE_DOTS

IgnoreDots

Ignore leading dots in messages

confINPUT_MAIL_FILTERS

InputMailFilters

Define the order of input filters

confLDAP_CLUSTER

${sendmailMTACluster}

Specify which LDAP cluster to use in queries

confLDAP_DEFAULT_SPEC

LDAPDefaultSpec

Specify the default LDAP database-map switches

confLOG_LEVEL

LogLevel

Set the logging level

confMAILBOX_DATABASE

MailboxDatabase

Choose the type of mailbox database

confMAILER_NAME

$n

Set the error message sender

confMATCH_GECOS

MatchGECOS

Match recipient in GECOS field

confMAX_ALIAS_RECURSION

MaxAliasRecursion

Limit maximum recursion of aliases

confMAX_DAEMON_CHILDREN

MaxDaemonChildren

Maximum forked daemon children

confMAX_HEADERS_LENGTH

MaxHeadersLength

Set the maximum header length

confMAX_HOP

MaxHopCount

Set the maximum hop count

confMAX_MESSAGE_SIZE

MaxMessageSize

Maximum incoming message size

confMAX_MIME_HEADER_LENGTH

MaxMimeHeaderLength

Maximum MIME header length

confMAX_QUEUE_CHILDREN

MaxQueueChildren

Limit total concurrent queue processors

confMAX_QUEUE_RUN_SIZE

MaxQueueRunSize

Maximum queue messages processed per queue run

confMAX_RCPTS_PER_MESSAGE

MaxRecipientsPerMessage

Maximum recipients per envelope

confMAX_RUNNERS_PER_QUEUE

MaxRunnersPerQueue

Limit concurrent queue processors per queue group

confMCI_CACHE_SIZE

ConnectionCacheSize

Set the SMPT connection cache size

confMCI_CACHE_TIMEOUT

ConnectionCacheTimeout

Set the SMTP connection cache timeout

confMESSAGE_TIMEOUT

QueueTimeout

Limit life of a message in the queue (deprecated)

confME_TOO

MeToo

Send to me too (deprecated)

confMILTER_LOG_LEVEL

Milter

Set the log level for the MILTER interface

confMILTER_MACROS_CONNECT

Milter

Specify the macros to send the MILTER filters following the initial connection

confMILTER_MACROS_ENVFROM

Milter

Specify the macros to send the MILTER filters following MAIL FROM:

confMILTER_MACROS_ENVRCPT

Milter

Specify the macros to send the MILTER filters following RCPT TO:

confMILTER_MACROS_HELO

Milter

Specify the macros to send the MILTER filters following HELO or EHLO

confMIME_FORMAT_ERRORS

SendMimeErrors

Return MIME-format errors

confMIN_FREE_BLOCKS

MinFreeBlocks

Define minimum free disk blocks

confMIN_QUEUE_AGE

MinQueueAge

Skip queue file if too young

confMUST_QUOTE_CHARS

MustQuoteChars

Quote nonaddress characters

confNICE_QUEUE_RUN

NiceQueueRun

Default nice(3) setting for queue processors

confNO_RCPT_ACTION

NoRecipientAction

How to handle no recipients in header

confOLD_STYLE_HEADERS

OldStyleHeaders

Allow spaces in recipient lists

confOPERATORS

OperatorChars

Set token separation operators

confPID_FILE

PidFile

Location of the sendmail process ID file

confPRIVACY_FLAGS

PrivacyOptions

Increase privacy of sendmail

confPROCESS_TITLE_PREFIX

ProcessTitlePrefix

Set the process listing prefix

confQUEUE_FACTOR

QueueFactor

Set the factor for high-load queuing

confQUEUE_FILE_MODE

QueueFileMode

Set the default permissions for queue files

confQUEUE_LA

QueueLA

On high load, queue only

confQUEUE_SORT_ORDER

QueueSortOrder

How to presort the queue

confRAND_FILE

RandFile

Location of the random file for use with STARTTLS

confREAD_TIMEOUT

Timeout

Set assorted time outs (deprecated)

confRECEIVED_HEADER

Section 25.7

Define the format for the Received: header

confREFUSE_LA

RefuseLA

Refuse connections on high load

confREJECT_MSG

Section 7.5.4

Customize a rejection message for the access database REJECT keyword

confRELAY_MAILER

Section 20.3.1.4

The name of the delivery agent used to relay mail

confRELAY_MSG

Section 7.4.2

The message used to reject relaying

confRRT_IMPLIES_DSN

RrtImpliesDsn

Return-Receipt-To: requests success DSN

confRUN_AS_USER

RunAsUser

Run as a user other than root

confSAFE_FILE_ENV

SafeFileEnvironment

Directory for safe file writes

confSAFE_QUEUE

SuperSafe

Queue everything just in case

confSAVE_FROM_LINES

SaveFromLine

Save Unix-style From lines

confSEPARATE_PROC

ForkEachJob

Process queue files with separate processes

confSERVER_CERT

ServerCertFile

Location of the server (inbound) digital certificate

confSERVER_KEY

ServerKeyFile

Location of the key file for the server (inbound) digital certificate

confSERVICE_SWITCH_FILE

ServiceSwitchFile

Specify file for switched services

confSEVEN_BIT_INPUT

SevenBitInput

Force 7-bit input

confSHARED_MEMORY_KEY

SharedMemoryKey

Enable shared memory by setting the key

confSINGLE_LINE_FROM_HEADER

SingleLineFromHeader

Strip newlines from From: headers

confSINGLE_THREAD_DELIVERY

SingleThreadDelivery

Set-single threaded delivery

confSMTP_LOGIN_MSG

SmtpGreetingMessage

Set the SMTP greeting message

confSMTP_MAILER

Section 20.4

Define the SMTP delivery agent

confTEMP_FILE_MODE

TempFileMode

Permissions for temporary files

confTIME_ZONE

TimeZoneSpec

Set the time zone

confTLS_SRV_OPTIONS

TLSSrvOptions

Tune the server TLS settings

confTO_ACONNECT

See this section

Overall timeout for all connect attempts

confTO_AUTH

See this section

Timeout for the client's response to the AUTH command

confTO_COMMAND

See this section

Timeout for the next SMTP command

confTO_CONNECT

See this section

Timeout for the connection to be established

confTO_DATABLOCK

See this section

Overall timeout for the SMTP DATA phase

confTO_DATAFINAL

See this section

Timeout waiting for acknowledgment of the SMTP DATA dot

confTO_DATAINIT

See this section

Timeout waiting for acknowledgment of the SMTP DATA command

confTO_FILEOPEN

See this section

Timeout waiting for a file to be opened

confTO_HELO

See this section

Timeout waiting for the other side to acknowledge the HELO or EHLO SMTP command

confTO_HOSTSTATUS

See this section

Define how long host information will be considered valid

confTO_ICONNECT

See this section

Timeout the very first connection attempt

confTO_IDENT

See this section

Timeout the wait for an ident lookup

confTO_INITIAL

See this section

How long to wait for the initial 220 line following the connection

confTO_LHLO

See this section

Timeout waiting for the reply to the LHLO LMTP command

confTO_MAIL

See this section

How long to wait for the reply to the SMTP MAIL FROM: command

confTO_MISC

See this section

How long to wait for the reply to miscellaneous SMTP commands

confTO_QUEUERETURN

See this section

How long to leave a message queued before bouncing it

confTO_QUEUERETURN_NONURGENT

See this section

How long to leave a nonurgent message queued before bouncing it

confTO_QUEUERETURN_NORMAL

See this section

How long to leave a normal message queued before bouncing it

confTO_QUEUERETURN_URGENT

See this section

How long to leave an urgent message queued before bouncing it

confTO_QUEUEWARN

See this section

How long to leave a message queued before announcing it has not yet been sent

confTO_QUEUEWARN_NONURGENT

See this section

How long to leave a nonurgent message queued before announcing it has not yet been sent

confTO_QUEUEWARN_NORMAL

See this section

How long to leave a normal message queued before announcing it has not yet been sent

confTO_QUEUEWARN_URGENT

See this section

How long to leave an urgent message queued before announcing it has not yet been sent

confTO_QUIT

See this section

How long to wait for the reply to the QUIT SMTP command

confTO_RCPT

See this section

How long to wait for the reply to the RCPT TO: SMTP command

confTO_RESOLVER_RETRANS

See this section

The amount of time to wait between retries before a retransmission

confTO_RESOLVER_RETRANS_FIRST

See this section

The amount of time to wait between retries before a retransmission on the first connection attempt

confTO_RESOLVER_RETRANS_NORMAL

See this section

The amount of time to wait between retries before a retransmission on all subsequent connection attempts

confTO_RESOLVER_RETRY

See this section

The number of retries allowed before giving up

confTO_RESOLVER_RETRY_FIRST

See this section

The number of retries allowed before giving up for the first connection attempt

confTO_RESOLVER_RETRY_NORMAL

See this section

The number of retries allowed before giving up for all subsequent connection attempts

confTO_RSET

See this section

How long to wait for the reply to the RSET SMTP command

confTO_STARTTLS

See this section

How long to wait for the other side to begin the STARTTLS negotiation

confTRUSTED_USER

TrustedUser

Alternative to root administration

confTRUSTED_USERS

FEATURE(use_ct_file)

Define who can rebuild the aliases database

confTRY_NULL_MX_LIST

TryNullMXList

Use A or AAA if no best MX record

confUNSAFE_GROUP_WRITES

UnsafeGroupWrites

Check unsafe group permissions (deprecated)

confUSERDB_SPEC

UserDatabaseSpec

Specify the user database

confUSE_ERRORS_TO

UseErrorsTo

Use Errors-To: header for errors

confUSE_MSP

UseMSP

Run as a mail submission program

confUUCP_MAILER

Section 20.3.1.2

Specify your preference for the delivery agent that will handle outbound UUCP mail

confWORK_CLASS_FACTOR

ClassFactor

Multiplier for priority increments

confWORK_RECIPIENT_FACTOR

RecipientFactor

Penalize large recipient lists

confWORK_TIME_FACTOR

RetryFactor

Increment per job priority

confXF_BUFFER_SIZE

XscriptFileBufferSize

Set xf file buffered I/O limit

CYRUS_BB_MAILER_ARGS

cyrus

Define the A= arguments for the cyrusbb delivery agent

CYRUS_BB_MAILER_FLAGS

cyrus

Define the F= flags for the cyrusbb delivery agent

CYRUS_MAILER_ARGS

cyrus

Define the A= arguments for the cyrus delivery agent

CYRUS_MAILER_FLAGS

cyrus

Define the F= flags for the cyrus delivery agent

CYRUS_MAILER_MAX

cyrus

Define the M= limit for the cyrus delivery agent

CYRUS_MAILER_PATH

cyrus

Define the P= path for the cyrus delivery agent

CYRUS_MAILER_USER

cyrus

Define the U= user:group identity for the cyrus delivery agent

CYRUS_MAILER_QGRP

cyrus

Define the Q= queue group for the cyrus delivery agent

CYRUSV2_MAILER_ARGS

cyrusv2

Define the A= arguments for the cyrusv2 delivery agent

CYRUSV2_MAILER_CHARSET

cyrusv2

Define the C= character set for the cyrusv2 delivery agent

CYRUSV2_MAILER_FLAGS

cyrusv2

Define the F= flags for the cyrusv2 delivery agent

CYRUSV2_MAILER_MAXMSGS

cyrusv2

Define the m= limit for the cyrusv2 delivery agent

CYRUSV2_MAILER_MAXRCPTS

cyrusv2

Define the r= limit for the cyrusv2 delivery agent

CYRUSV2_MAILER_QGRP

cyrusv2

Define the Q= queue group for the cyrusv2 delivery agent

DAEMON_OPTIONS( )

DaemonPortOptions

Set options for the listening daemon

DATABASE_MAP_TYPE

Section 23.5.1

Set a default database type for features.

DECNET_RELAY

Section 4.5.2

The DECnet relay

DNSBL_MAP_OPT

dns

Change the K configuration command switches for the dns type database map used by the dnsbl feature.

DOL( )

Section 4.1.4

Insert literal $ character into m4's output

DOMAIN( )

Section 4.2.2.3

Specify common domain-wide information

DSMTP_MAILER_ARGS

smtp, etc.

Define the A= arguments for the dsmtp delivery agent

DSMTP_MAILER_QGRP

smtp, etc.

Define the Q= queue group for the dsmtp delivery agent

EDNSBL_TO

dns

Change the K configuration command's -r switch for the dns type database map used by the enhdnsbl feature to set resolver's retries.

ESMTP_MAILER_ARGS

smtp, etc.

Define the A= arguments for the esmtp delivery agent

ESMTP_MAILER_QGRP

smtp, etc.

Define the Q= queue group for the esmtp delivery agent

EXPOSED_USER( )

Section 4.4.1

Add users individually to the exposed-user class

EXPOSED_USER_FILE( )

Section 4.4.1

File of users to add individually to the exposed-user class

FAX_MAILER_ARGS

fax

Define the A= arguments for the fax delivery agent

FAX_MAILER_MAX

fax

Define the M= size limit for the fax delivery agent

FAX_MAILER_PATH

fax

Define the P= path for the fax delivery agent

FAX_MAILER_QGRP

fax

Define the Q= queue group for the fax delivery agent

FAX_RELAY

Section 4.5.3

Define the FAX relay host

FEATURE(accept_unqualified_senders)

Section 7.4.11

Accept MAIL FROM: addresses that lack a domain part

FEATURE(accept_unresolvable_domains)

Section 7.4.10

Accept MAIL FROM: addresses for which the domain cannot be found

FEATURE(access_db)

Section 7.5

Enable use of the access database

FEATURE(allmasquerade)

FEATURE(allmasquerade)

Masquerade the recipient too

FEATURE(always_add_domain)

FEATURE(always_add_domain)

Add the local domain even on local mail

FEATURE(authinfo)

Section 10.9.3

Use a separate database for outbound authentication information

FEATURE(bestmx_is_local)

FEATURE(bestmx_is_local)

Accept best MX record as local if in $=w

FEATURE(bitdomain)

FEATURE(bitdomain)

Convert BITNET addresses into Internet addresses

FEATURE(blacklist_recipients)

Section 7.5.5

Selectively reject envelope-recipient addresses

FEATURE(compat_check)

Section 7.5.7

Screen sender/recipient pairs

FEATURE(delay_checks)

Section 7.5.6

Check envelope recipient first

FEATURE(dnsbl)

Section 7.2

Reject based on various DNSBL lists

FEATURE(domaintable)

FEATURE(domaintable)

Accept old as equivalent to new domain

FEATURE(enhdnsbl)

Section 7.2.2

Enhanced DNSBL rejection

FEATURE(genericstable)

FEATURE(genericstable)

Transform sender addresses

FEATURE(generics_entire_domain)

FEATURE(generics_entire_domain)

Match subdomains in generics table

FEATURE(ldap_routing)

See this section

Reroute recipients based on LDAP queries

FEATURE(limited_masquerade)

FEATURE(limited_masquerade)

Masquerade a subset of the hosts in $=w

FEATURE(local_lmtp)

FEATURE(local_lmtp)

Deliver locally with LMTP and mail.local

FEATURE(local_no_masquerade)

FEATURE(local_no_masquerade)

Don't masquerade local mail

FEATURE(local_procmail)

FEATURE(local_procmail)

Use procmail(1) as local delivery agent

FEATURE(lookupdotdomain)

FEATURE(lookupdotdomain)

Enable .domain secondary access database lookups

FEATURE(loose_relay_check)

Section 7.4.2

Allow %-hack relaying

FEATURE(mailertable)

FEATURE(mailertable)

Database selects new delivery agents

FEATURE(masquerade_entire_domain)

FEATURE(masquerade_entire_domain)

Masquerade all hosts in a domain

FEATURE(masquerade_envelope)

FEATURE(masquerade_envelope)

Masquerade the envelope too

FEATURE(msp)

Section 2.6.2

Create a mail submission cf file

FEATURE(nocanonify)

FEATURE(nocanonify)

Don't canonify with $[ and $]

Part I: Build and Install
Part II: Administration
Part III: The Configuration File