Appendix B. IRIX sendmail Reference

This appendix provides reference material on the sendmail command. It is divided into the following sections:

sendmail Command-Line Flags

You can include one or more flags on the command line to tailor a sendmail session. This section describes some of the more frequently used flags.

For a detailed description of command-line flags, see “sendmail Flags, Options, and Files”.

Changing the Values of sendmail Configuration Options

The -o flag overrides an option in the configuration file. The override is for the current session only. In the following example, the T (timeout) option becomes two minutes for this session only:

/usr/lib/sendmail -oT2m 

For a detailed discussion of configuration options, see “sendmail Flags, Options, and Files”.

Specifying the sendmail Delivery Mode

One configuration option frequently overridden on the command line is the d option, which specifies the sendmail delivery mode. The delivery mode determines how quickly mail is delivered:

i  

Deliver interactively (synchronously)

b  

Deliver in background (asynchronously)

q  

Queue only (don't deliver)

There are trade-offs. Mode i passes the maximum amount of information to the sender, but is rarely necessary.

Mode q puts the minimum load on your system, but if you use it, delivery may be delayed for up to the queue interval.

Mode b is probably a good compromise. However, in this mode, sendmail may initiate a large number of processes if you have a mailer that takes a long time to deliver a message.

Specifying the sendmail Queue Mode

The -q flag causes sendmail to process the mail queue at regular intervals. The syntax is as follows, where time defines the interval between instances of queue processing:

-q [time] 

Time is expressed in number of minutes: 15m sets the interval to 15 minutes. If time is omitted, sendmail processes the queue once and returns. The -q flag is often used in conjunction with daemon mode, described in the next subsection.

See “sendmail Timeout and Interval Abbreviations” for a discussion of time-interval specifications and formats.

Specifying the sendmail Daemon Mode

To process incoming mail over sockets, a daemon must be running. The -bd flag causes sendmail to run in daemon mode. The -bd and -q flags can be combined in one call, as in the following example:

/usr/lib/sendmail -bd -q30m

This command causes sendmail to run in daemon mode and to fork a subdaemon for queue processing every half hour.

The script for starting sendmail that is provided with IRIX includes the following command line:

/usr/lib/sendmail -bd -q15m

Specifying the sendmail Verification Mode

Using the -bv flag directs sendmail to validate addresses, aliases, and mailing lists. In this mode, sendmail performs verification only. It does not try to collect or deliver a message. sendmail expands all aliases, suppresses duplicates, and displays the expanded list of names. For each name, sendmail indicates if it knows how to deliver a message to that destination.

Specifying the sendmail Test Mode

The -bt flag places sendmail in test mode so that it describes how the current configuration rewrites addresses. Test mode is extremely useful for debugging modifications to the /usr/lib/sendmail.cf configuration file.

Specifying the sendmail Debugging Flags

Several debugging flags are built into sendmail. Each flag includes a number and a level. The number identifies the debugging flag. The level, which defaults to 1, dictates how much information prints. A low level causes minimal information to print; a high level causes more comprehensive information to print. In general, levels greater than 9 cause so much information to print that it is of limited value. Debugging flags use the following syntax:

-d debug-list 

A debug list includes the flag number and the flag level, as shown in the following examples:

  • Set flag 13 to level 1.

    -d13 

  • Set flag 13 to level 3.

    -d13.3 

  • Set flags 5 though 18 to level 1.

    -d5-18 

  • Set flags 5 through 18 to level 4.

    -d5-18.4 

Many debugging flags are of little use to the average sendmail user. Some are occasionally useful for helping to track down obscure problems. “sendmail Flags, Options, and Files” includes a list of common debugging flags.

Tuning sendmail

A number of configuration parameters are available for fine-tuning sendmail to the requirements of a specific site. Options in the configuration file set these parameters. For example, the string T3d sets the T (timeout) option to 3d (three days). For other sendmail timeout abbreviations see “sendmail Timeout and Interval Abbreviations”.

Most options have default values that are appropriate for many sites. However, sites having very high mail loads may need to tune these parameters to fit the mail load. In particular, sites with a large volume of small messages that are delivered to multiple recipients may need to adjust the parameters for queue priorities.

The rest of this section describes the configuration parameters for the following tuning areas:

sendmail Timeout and Interval Abbreviations

Time intervals use the following abbreviations:

s  

Seconds

m  

Minutes

h  

Hours

d  

Days

w  

Weeks

For example, “10m represents 10 minutes, and “2h30mrepresents two hours and 30 minutes.

Setting the sendmail Message Queue Interval

The argument to the -q flag specifies how often to process the mail queue. When the sendmail daemon is started with the /etc/init.d/mail script, the queue interval is set to 15 minutes.

If sendmail runs in delivery mode b, messages are written to the queue only when they cannot be delivered (for example, when a recipient host is down). Therefore, the need to process the queue is limited and the queue interval value may be set quite high. The value is relevant only when a host that was down comes back up.

If sendmail runs in delivery mode q, the queue interval should be set to a low value, as it defines the longest time that a message sits in the local queue before being processed.

Setting the sendmail Read Timeouts

The sendmail program can time out when reading the standard input or when reading from a remote SMTP server. Technically, a timeout is not acceptable within the published protocols. However, setting the read timeout option to a high value (such as an hour) reduces the chance that a large number of idle daemons will pile up on a system. The read timeout option is specified as:

rtimeout.suboption=value 

where timeout is specified in the standard sendmail timeout manner indicated in “sendmail Timeout and Interval Abbreviations”. The following suboptions broaden the scope of the read timeout:

Table B-1. Suboptions of sendmail Read Timeouts

Suboption

Description

command

Wait for the next command

connect

Wait for the connect(2) to return

datablock

Wait for each DATA block to read

datafinal

Wait for acknowledgment of final dot

datainit

Wait for data acknowledgment

fileopen

Wait for an NFS file to open

helo

Wait for HELO or EHLO

hoststatus

Duration of host status

iconnect

Wait for the first connect (2)

initial

Wait for the initial greeting message

mail

Wait for MAIL acknowledgment

misc

Wait for other SMTP commands

queuereturn

Bounce if still undelivered

queuewarn

Warn if still undelivered

quit

Wait for QUIT acknowledgment

rcpt

Wait for RCPT acknowledgment

rset

Wait for RSET acknowledgment


Setting the sendmail Queued Message Timeouts

The sendmail feature causes a queued message to time out after a specified time period. This feature ensures that the sender knows the message cannot be delivered. This default message timeout value is one week (seven days). The value is set with the T option.

The queue records the time of submission, rather than the time remaining until timeout. This approach enables sendmail to flush messages that have been hanging for a short period by running the queue with a short message timeout. The following example illustrates how to process the queue and flush any message that is one day old:

/usr/lib/sendmail -oT1d -q 

Forking During sendmail Mail Queue Runs

Setting the Y option causes sendmail to fork before each individual message when processing the queue. This technique prevents sendmail from consuming large amounts of memory, and may be useful in memory-poor environments. However, if the Y option is not set, sendmail keeps track of hosts that are down during a queue run, which can improve performance dramatically.

About sendmail Queue Priorities

The sendmail program assigns a priority to every message when it is first instantiated. It uses the priority and the message creation time (in seconds since January 1, 1970) to order the queue. The message with the lowest priority number is processed first. The algorithm that derives a message's priority uses the following information:

message size (in bytes)
 

Small messages receive lower priorities than large messages, increasing the efficiency of the queue.

message class
 

If the user includes a Precedence: field and value in a message, sendmail uses the value to select the message class from the configuration file. (Typical values might be “first-class” or “bulk.”)

class work factor
 

This factor is set in the configuration file with the z option; its default value is 1800.

number of recipients
 

The number of recipients affects the load a message presents to the system. A message with a single recipient has a lower priority than one with a long recipient list.

recipient work factor
 

This factor is set in the configuration file with the y option; its default value is 1000.

The priority algorithm is as follows:

priority=message_size-(message_class * z)+(num_recipients * y)

After assigning message priorities, sendmail orders the queue by using the following formula:

ordering = priority + creation_time

A message's priority can change each time an attempt is made to deliver it. The “work time factor” (set with the Z option) is a value that increments the priority, on the assumption that a message that has failed many times will tend to fail in the future.

About sendmail Load Limiting

sendmail can queue (and not attempt to deliver) mail if the system load average exceeds a specified maximum. The x option defines this maximum limit. When the load average exceeds the maximum, sendmail tests each message's priority by using the following algorithm, where q is the value associated with the q option, and x is the value associated with the x option:

q / (load_average - x + 1)

After the final load average is calculated, sendmail compares it to the message priority for each message. If the priority is greater, sendmail sets the delivery mode to q (queue only).

The default value for the q option is 10000; each point of load average is worth 10000 priority points. The X option defines the load average at which sendmail refuses to accept network connections. Locally generated mail (including incoming UUCP mail) is still accepted.

About sendmail Log Level

The sendmail facility provides a comprehensive error- and event-logging capability. The L (log level) option in the configuration file determines the level of detail written to the log. The default value for the log level is 1; valid levels are as follows:

0  

No logging

1  

Major problems only

2  

Message collections and failed deliveries

3  

Successful deliveries

4  

Messages being deferred (because a host is down, for example)

5  

Normal message queue-ups

6  

Unusual but benign incidents, such as trying to process a locked queue file

9  

Log internal queue ID to external message ID mappings; useful for tracing a message as it travels among several hosts

12  

Several messages of interest when debugging

16  

Verbose information regarding the queue

20 

Attempts to run a locked queue file

21  

Monitor load average computation and process counting

About the Sendmail Configuration File - sendmail.cf

The sendmail.cf file is the configuration file that tells sendmail how to behave and how to route mail. Most users will want to configure this file by defining parameters in the sendmail.mc file and by using the prototype files in the /usr/lib/sendmail.cf_m4 directory to generate their sendmail.cf files.

For more information on modifying the sendmail.cf file, we recommend sendmail, 2nd Edition, by Bryan Costales and Eric Allman (ISBN: 1-56592-222-0) . The publisher is O'Reilly & Associates Inc. You can order the book at the following URL:

http://www.oreilly.com/catalog/sendmail2

sendmail Flags, Options, and Files

This section contains information on the following topics:

sendmail Command-Line Flags

Flags must precede addresses. The flags are:

-bx  

Set operation mode to x. Operation modes are:

a

Run in ARPANET mode.

The special processing for the ARPANET includes reading the “From:” and “Sender:” lines from the header to find the sender, printing ARPANET-style messages (preceded by three-digit reply codes for compatibility with the FTP protocol) and ending lines of error messages with <CRLF>.

d

Run as a daemon.

D

Same as d but runs in foreground.

h

Print the host status database.

H

Purge the host status database.

i

Initialize the alias database.

m

Deliver mail in the usual way (default).

p

Print the mail queue.

s

Speak SMTP on input side.

t

Run in test mode.

v

Just verify addresses, don't collect or deliver.


-Cfile 

Use a different configuration file. sendmail runs as the invoking user (rather than root) when this flag is specified.

-dflag[-flag][.level]  

Set debugging flag (or range of flags) to the specified level. (The default is 1.) See “sendmail Debugging Flags”.

-Fname 

Set the full name of the sender to name. 

-fname 

Set the name of the From person (the sender of the mail). This flag is ignored unless the user appears in the list of “trusted” users, or name is the same as the user's name.

-hcnt  

Set the “hop count” to cnt. The hop count is incremented every time the mail is processed. When it reaches a limit, the mail is returned with an error message, the victim of an aliasing loop.

-i 

Ignore dots alone on line by themselves on incoming messages.

-N 

Set delivery status notification.

-n 

Don't do aliasing.

-ox value  

Set configuration option x to the specified value. These options are described in section “sendmail Configuration Options”.

-pprotocol  

Set message-receiving protocol. Use the protocol name or a combination of protocol and hostname, for example, UUCP:ucbvax.

-q[time]  

Process the queued mail. If the time is given, sendmail will run through the queue at the specified interval to deliver queued mail; otherwise, it runs only once. See “Specifying the sendmail Queue Mode”.

-Rreturn  

Set the amount of message to be returned if delivery fails. For example, set full to return the full message, or hdrs for headers only.

-r name  

An alternative and obsolete form of -f. 

-t  

Read the header for To:, Cc:, and Bcc: lines, and send the message to everyone listed in those lists. The Bcc: line is deleted before sending. Any addresses in the argument vector are deleted from the send list.

-U 

Set the initial user submission. For user agents like Mail or exmh, this should always be set. For network delivery agents like rmail, this should never be set.

-Venvid  

Set the original envelope ID.

-v  

Go into verbose mode: Alias expansions are announced, and so on.

-Xlogfile  

Logs all mailer traffic to logfile. Use only for stubborn debugging problems, because data piles up quickly.

-Zfile  

Alternate freeze file is designated with file.

sendmail Configuration Options

You can set the following options by using the -o flag on the command line or the O line in the configuration file. Many of these options cannot be specified unless the invoking user is trusted.

AliasFile=file

Afile  

Use the named file as the alias file. If no file is specified, use an alias in the current directory.

AliasWait=N

aN  

If set, wait up to N minutes for an @:@ entry to exist in the alias database before starting up. If the entry does not appear in N minutes, rebuild the database (if the D option is also set) or issue a warning.

BlankSub=c

Bc  

Set the blank substitution character to c. Unquoted spaces in addresses are replaced by this character.

MinFreeBlocks=nblocks

bnblocks[/maxsize] 

Set the minimum number of free blocks needed to spool any message, while setting the maximum allowable message size. Defaults are 0 (zero) and infinite, respectively.

CheckpointInterval=N

CN 

Check the queue file after N successful deliveries. This can be useful if you send to a long mailing list interrupted by system crashes, which would otherwise engender several duplicate deliveries.

HoldExpensive

c  

If an outgoing mailer is marked as being expensive, don't connect immediately.This option requires queueing.

AutoRebuildAliases

D 

Rebuild the alias database if necessary and possible. If this option is not set, sendmail will not rebuild the alias database until you explicitly request it to do so (by using sendmail -bi).

DeliveryMode=x  

dx  

Deliver in mode x. These are the legal modes:

i

Deliver interactively (synchronously).

b

Deliver in background (asynchronously).

q

Just queue the message (deliver during queue run).


ErrorHeader=/file|format

E/file|format  

Add headers to error messages. If the value begins with /, the error header formats are read from the specified file.

ErrorMode=x

ex  

Handle errors by using mode x. The values for x are:

p

Print error messages (default).

q

Print no messages; just give exit status.

m

Mail back errors.

w

Write back errors (mail the errors if user not logged in).

e

Mail back errors and always give zero exit status.


TempFileMode=mode

Fmode  

Set the UNIX file mode to use when creating queue files and “frozen configuration” files.

SaveFromLine

f  

Save UNIX style “From” lines at the front of headers. Normally these lines are assumed to be redundant and are discarded.

MatchGecos

G 

Match local names against the GECOS portion of the password file.

DefaultUser

gn  

Set the default group ID for running mailers to n.

HelpFile=file

Hfile  

Specify the help file for SMTP.

MaxHopCount=N

hN 

Set the maximum times a message is allowed to hop before it is categorized as being in a loop.

I 

Insist that the BIND name server be running to resolve hostnames and MX records. Treat ECONNREFUSED errors from the resolver as temporary failures. In general, you should set this option only if you are running the name server. Set this option if the /etc/hosts file does not include all known hosts or if you are using the MX (mail forwarding) feature of the BIND name server. The name server is still consulted even if this option is not set, but sendmail resorts to reading /etc/hosts if the name server is not available.

IgnoreDots

i  

Do not interpret dots on a line by themselves as a message terminator.

ForwardPath=path

Jpath 

Use this path to search for users' .forward file. The default is $z.forward, but can also be set as a sequence of paths separated by colons.

SendMimeErrors

j 

Send error messages in MIME format.

ConnectionCacheTimeout=timeout

Ktimeout 

Define the maximum amount of time a cached connection is permitted to idle without activity. The timeout is given as a tagged number, with “s” for seconds, “m” minutes, “h” hours, “d” days, and “w” weeks. For example, “K1h30m” and “K90m” both set the timeout to one hour and thirty minutes.

ConnectionCacheSize=N  

kN 

Define the maximum number of cached open connections. The default is one; if set to zero, connections are closed immediately.

LogLevel=n

Ln  

Set the log level to n. Possible values for n are these:

0

No logging

1

Serious system failures and potential security problems

2

Network problems and security failures

3

Forwarding and received message errors

4

Minor errors

5

Received messages/message collection statistics

6

Creation of error messages, VRFY and EXPN commands

7

Message delivery failures

8

Successful deliveries

9

Messages being deferred, perhaps due to a host being down

10

Alias forwarding expansion

12

Connecting hosts

20

Attempts to run locked queue files

21

Monitor load average computation


UseErrorsTo

l 

If there is an Errors-To: header, send any error messages to those addresses.

Mx value  

Set the macro x to value. This option can be used only from the command line.

MeTo

m  

Send to “me” (the sender) even if the sender is in an alias expansion.

Nnetname  

Set the name of the home (local) network. If the name of a connecting host (determined by a call to gethostbyaddr()) is unqualified (contains no dots), a single dot and netname will be appended to sendmail's idea of the name of the connecting host.

Later, the argument of the SMTP HELO command from the connecting host will be checked against the name of the connecting host as determined above. If they do not match, Received: lines are augmented by the connecting hostname that sendmail has generated so that messages can be traced accurately.

CheckAliases

n  

Validate the right-hand side when building the alias database.

OldStyleHeaders

o  

Assume that the headers may be in an old format, in which spaces delimit names. This option actually turns on an adaptive algorithm: If any recipient address contains a comma, parenthesis, or angle bracket, it is assumed that commas already exist. If this flag is not on, only commas delimit names. Headers are always written with commas between the names.

PostMasterCopy=addr

Paddr  

Add “postmaster” address addr to the Cc: list of all error messages.

PrivacyOptions=opt,opt,...

popt,opt, 

Insist on privacy options to conform to SMTP protocols:

authwarnings

Add X-Authentication-Warning headers

goaway

Disallow all SMTP status queries

needexpnhelo

Insist of HELO or EHLO command before EXPN

needmailhelo

Insist on HELO or EHLO command before MAIL

needvrfyhelo

Insist on HELO or EHLO command before VRFY

noexpn

Disallow EXPN entirely

novrfy

Disallow VRFY entirely

noreceipts

Ignore Return-Receipt-To: header

public

Allow open access (the default)

restrictmailq

Restrict mailq command


Qdir  

Use dir as the queue directory.

qfactor  

Use factor as the multiplier in the function to decide when to queue messages rather than attempting to send them. This value is divided by the difference between the current load average and the load average limit (x option) to determine the maximum message priority that will be sent.This value defaults to 10000.

R 

Explicitly route to the first address in the route.

Timeout.suboption=time

rtime 

Cause a timeout on reads after time interval.

StatusFile=file

Sfile 

Log statistics in the named file. 

SuperSafe

s 

Be super-safe when running; that is, always instantiate the queue file, even if attempting immediate delivery. sendmail always instantiates the queue file before returning control to the client under any circumstances.

QueueTimeout=time

Ttime 

Set the queue timeout to time. After this interval, messages that have not been successfully sent are returned to the sender.

TimeZoneSpec

ttzinfo 

Set the local timezone, for example, PST8PDT.

DefaultUser=U [:G]

un 

Set the default user ID for mailers to n. Mailers without the S flag in the mailer definition run as this user.

FallbackMXhost=host  

Vhost 

Set host to act like a very low priority MX on every host.

Verbose

v 

Run in verbose mode.

TryNullMXList

w 

If we are the best MX, try the host directly. This state is set by default.

QueueLA=load

xload  

Use load as the system load average limit when deciding whether to queue messages rather than attempting to send them.

RefuseLA=load

Xload  

When the system load average exceeds load, refuse incoming SMTP connections.

Recipientfactor=factor  

yfactor  

This factor is multiplied by the number of recipients and added to the priority. Therefore, this value penalizes messages with large numbers of recipients.

ForkEachJob

Y  

Deliver each job that is run from the queue in a separate process. Use this option if you are short of memory, since the default tends to consume considerable amounts of memory while the queue is being processed.

ClassFactor=factor

zfactor  

This factor is multiplied by the message class (determined by the Precedence field in the user header and the precedence declaration lines in the configuration file) and subtracted from the priority. Therefore, messages with a higher class are favored.

RetryFactor=factor  

Zfactor  

This factor is added to the priority every time a message is processed. Therefore, this value penalizes messages that are processed frequently.

DialDelay=sleeptime  

 

If the opening connection fails, sleep for sleeptime seconds and try again. Useful for dial-on-demand sites.

NoRecipientAction=action

 

Set the behavior when there are no recipient headers (To:, Cc: or Bcc;) in the message to action. Possible values for action are these:

none

Leaves the message unchanged

add-to

Adds a To: header with the envelope recipients

add-apparently-to

Adds an Apparently-To header with the envelope recipients

add-bcc

Adds an empty Bcc: header

add-to-undisclosed

Adds a header reading “To undisclosed-recipients”


sendmail Support Files

This section provides a summary of the support files that sendmail creates or generates.

/etc/aliases.db  

The aliases file in the berkeley db format.

/etc/aliases.{pag,dir}  

The alias file in ndbm format.

/etc/init.d/mail  

Shell script for starting and stopping the sendmail daemon.

/etc/sendmail.cf  

The configuration file in textual form.

/etc/sendmail.hf  

The SMTP help file.

/etc/sendmail.killed  

A text file that contains the names of all known “dead” hosts (hosts that no longer exist or cannot receive mail for some reason).

/etc/sendmail.mc  

The configuration file for the sendmail.cf file.

//usr/bin/mail.local  

Program that sendmail uses as the “local” mailer.

usr/bin/mailq  

Prints a listing of the mail queue; using this file is equivalent to using the -bp flag to sendmail. 

/usr/bsd/newaliases  

A link to /usr/lib/sendmail; causes the alias database to be rebuilt. Running this program is equivalent to giving sendmail the -bi flag.

/usr/lib/aliases  

The text version of the alias file.

/usr/lib/sendmail  

The sendmail program.

/usr/lib/sendmail.st  

A statistics file; need not be present.

/var/spool/mqueue  

The directory in which the mail queue and temporary files reside.

/var/spool/mqueue/df*  

Data files.

/var/spool/mqueue/nf*  

A file used when a unique ID is created.

/var/spool/mqueue/qf*  

Control (queue) files for messages.

/var/spool/mqueue/tf*  

Temporary versions of the qf files, used during queue-file rebuild.

/var/spool/mqueue/xf*  

A transcript of the current session.

sendmail Debugging Flags

The following list includes many sendmail debugging flags. Flags that are especially useful are marked with an asterisk (*).

0.1*  

Print information about sendmail version.

0.4*  

Show known names for local host.

0.15* 

Dump delivery agents.

0.20* 

Print network address of each interface.

0.44  

Have printav() print addresses of elements.

1.1*  

Show mail “From” address for locally generated mail.

2.1*  

Print exit status and envelope flags.

4.80* 

Trace state of enoughspace().

5.4  

Print arguments to tick() calls.

5.5  

Print arguments to setevent() and clrevent() calls.

5.6  

Print event queue on tick() call.

6.1*  

Indicate call to savemail() or returntosender() error processing.

6.5  

Trace states in savemail() state machine.

7.1*  

Print information on envelope assigned to queue file.

7.2*  

Print selected queue-file name.

7.20*  

Print intermediate queue-file name selections.

8.1*  

Print various information about resolver calls.

8.2* 

Return fully qualified canonical hostname to getcanonname(3).

8.3* 

Trace local hostnames that were dropped.

8.5* 

Print hostname being tried in getcanonname(3).

8.7* 

Answer yes or no to the hostname being tried in getcanonname(3).

8.8* 

Turn on MX resolver debugging when it sends back the wrong type.

9.1*  

Show results from gethostbyaddr() call.

10.1*  

Print message delivery information.

11.1*  

Log information about mail program used by call to openmailer().

11.2* 

Show the user and group IDs running during delivery.

12.1*  

Display remotename() input and output.

13.1*  

sendall()—Print addresses being sent to.

13.3  

sendall()—Print each address in loop looking for failure.

13.4  

sendall()—Print who gets the error.

14.2  

Indicate commaize() calls.

15.1  

Indicate port or socket number used by getrequests().

15.2  

Indicate when getrequests() forks or returns.

15.15  

Set DEBUG socket option in getrequests().

16.1*  

Indicate host, address, and socket being connected to in makeconnection().

16.14  

Set DEBUG socket option in makeconnection().

18.1*  

Show SMTP chatter.

18.100  

Suspend sendmail after reading each SMTP reply.

20.1*  

Display parseaddr() input and output.

21.2*  

Show rewrite rule-set subroutine calls/returns and input/output, and display run-time macro expansions.

21.3*  

Indicate rewrite subroutine call from inside rewrite rule.

21.4*  

Display rewrite results.

21.10*  

Indicate rule failures.

21.12*  

Indicate rule matches and display address-rewrite steps.

21.15*  

Show rewrite substitutions.

21.35  

Display elements in pattern and subject.

22.1* 

Display any invalid address before parsing with prescan().

22.11* 

Display address typed in before parsing with prescan().

25.1*  

Show “To” list designations.

26.1*  

Show recipient designations/duplicate suppression.

26.6*  

Show recipient password-match processing.

27.1*  

Print alias and forward transformations and errors.

27.2* 

Include file, self-reference, error on home.

27.3*  

Print detailed aliaslookup() information.

27.4* 

Warn if user tries to run included files owned by another user.

27.9* 

Warn if a user changes uid/gid when included files are read.

28.1* 

Trace user database transactions.

29.4* 

Print matches that are a result of fuzzy searches.

30.1  

Indicate end of headers when collecting a message.

30.2  

Print arguments to eatfrom() calls.

30.3  

Indicate when adding an Apparently-To header to the message.

31.2* 

Trace processing of headers.

31.6  

Indicate call to chompheader() and header to be processed.

32.1  

Display collected header.

33.1  

Display crackaddr() input/output.

34.11* 

Trace how headers are generated and how they are skipped.

35.9*  

Display macro definitions.

35.24  

Display macro expansions.

36.5  

Show symbol table processing.

36.9  

Show symbol table hash function result.

37.1*  

Display options as set.

37.2*  

Show rewrite class loading.

37.8* 

Show words added to class.

38.2* 

Show map opens and failures.

38.4* 

Show the results of map opens.

38.20* 

Trace map lookups.

40.1*  

Indicate queueing of messages and display queue contents.

40.4*  

Display queue control file contents.

40.5*  

Display information about message-controlling user.

41.1 

Display the queue ordering.

41.2  

Indicate orderq() failure to open control file.

44.5* 

Trace writable() calls.

48.2* 

Trace calls to the user-configurable check_rule sets.

45.1  

Indicate setsender() calls.

50.1  

Indicate dropenvelope() calls.

51.4  

Don't remove transcript files (qxAAXXXXX files).

52.1  

Indicate call to disconnect(); print I/O file descriptors.

52.5  

Don't perform disconnect.

60.1*  

Print information about map lookups inside rewrite().

61.1*  

Print information about MX record lookups.