NAME
/etc/smail/config − smail global variables configuration
THE CONFIG FILE
The config file defines values for global variables used by smail. Each entry in this file gives the name of a variable to be set and defines a string, numeric or boolean value to give to that variable. The recognised forms for entries in the config file are:
variable_name = string or number
or:
variable_name or +variable_name
or:
-variable_name
The first form above sets the variable to a string or numeric value, the second form sets a boolean variable, and the last form un-sets a boolean variable, clears a string value or sets a numeric value to zero. The format of string and numeric values, comments, and the quoting and line continuation syntax is all described in the smail(5) manual page.
The following config file specifies a spool file mode of 0400, a maximum message size of 200KB, a method directory of /usr/lib/smail/method and disables use of a transport configuration:
# don’t allow others to read spool files spool_mode = 0400 # reject messages that are too large max_message_size = 200k # method files are stored in this directory method_dir = /usr/lib/smail/method # we are using the built in transport definitions, # so don’t bother looking for a transport file -transport_file
The complete
list of recognised attributes is given in the following
table, in alphabetic order. Note that the default values can
be changed when compiling the smail program.
allow_one_mx_target_cname_hack
type: boolean
default value: off
This flag controls whether or not we allow Smail to follow a single CNAME alias hop when looking for the addresses of MX target hosts.
Note that only DNS replies where the A RR for the CNAME target is also included in the answers section will be allowed. Smail does not (and never ever did) actually go out and look for any missing A records.
Note that no existing RFC gives even the slightest allowance for this behaviour. All specifications are, and always have been, very strict in saying that the target of an MX record MUST be a canonical hostname and that the SMTP server MUST report unusable MX records as errors.
auth_domains
type: string
default value: (none)
A colon-separated list of domain names for which this host is considered authoritative. A host that is authoritative for a domain has access to all routing information needed for that domain. The primary purpose of this variable is to list domains that will not be matched by the smarthost router driver.
auto_mkdir
type: boolean
default value: on
If set, then any directories required for spooling and logging will be created if they do not exist. Smail will never try to create required parent directories.
auto_mkdir_mode
type: integer
default value: 0755
When directories are created automatically by smail, they are created with this permissions mode mask. See stat(2) for information on what this mode represents.
console
type: string
default value: /dev/console
The file name for the console device. This filename is used as a last resort when attempting to write panic messages.
copying_file
type: string
default value: COPYING
The pathname to the COPYING file, which describes your distribution rights and details the warranty information from the authors of smail. If this does not begin with ’’/’’, it will be referenced relative to the smail_lib_dir directory.
daemon_pidfile
type: string
default value: /var/mail/smail.pid
The pathname of the file in which the process-ID of the Smail daemon process. This pathname will normally be the proper default for any given system, but if you have more than one daemon process running on the same system you may want to make this value unique amongst all instances. This file will normally be removed when the daemon process exits, but this cannot happen in some circumstances so care should be taken when using the contents of this file to identify the daemon process.
date_field
type: string
default value:
Date: $spool_date
This string will be expanded to form the Date: header field in a mail message. This will be used if such a field does not already exist in the message headers.
delivery_grades
type: string
default value: (none)
The grades of message which will have delivery attempted immediately. Other message grades (outside this range) will be queued for later delivery. The runq_grades configuration variable similarly controls delivery of mail that is in the smail queue. If queue_only is set or delivery_mode is set to queued, then delivery_grades has no effect. The grade string is a simple range of mail grades (see the definition of the grades configuration variable). Entries can be of the following forms:
delivery_grades="0-Z"
This allows immediate delivery of mail of grades ’’0’’ to ’’Z’’ (inclusive) (ie all other mail is queued for later delivery).
delivery_grades="C"
Only grade ’’C’’ (normally ’’First-Class’’) is immediately delivered.
delivery_grades="C-"
The third form means that grade ’’C’’ or lower mail is delivered.
delivery_grades="-C"
The fourth form means that mail of grades ’’C’’ or above is immediately delivered
delivery_grades="-" delivery_grades="" -delivery_grades
All grades are delivered immediately − this is the default.
delivery_mode
type: string
default value: background
The default mode of delivery for new mail. This can be one of the values ’’foreground’’ (immediate delivery in the process that received the message), ’’background’’ (immediate delivery in a child process, where the process that received the message exits immediately), or ’’queued’’ (do not attempt delivery until a later queue run).
director_file
type: string
default value: directors
Names the file containing the director configuration information. If this does not begin with ’’/’’, it will be referenced relative to the smail_lib_dir directory.
domains
type: string
default value: uucp
Specifies the (mail) domains that this host is in. The first item in the list is used with the hostname to make the primary_name which is used as this machine’s name in SMTP conversations etc.
error_copy_postmaster
type: boolean
default value: off
Copy the postmaster on all error messages. Normally only errors that appear to be a result of administrator errors will be mailed to the postmaster. If error_copy_postmaster is set, then errors that are returned to the sender, or that are mailed to owners of mailing lists, will also be sent to the postmaster.
fnlock_interval
type: number
default value: 3
The sleep interval between retries while attempting to lock mailbox files with a lockfile-based locking protocol. On systems with one second timer granularity, this value should be at least 2.
fnlock_mode
type: number
default value: 0666
Mailbox lock files are created with this mode.
fnlock_retries
type: number
default value: 0
The number of times to attempt to lock mailbox files using a file-based locking protocol.
If your system doesn’t have an atomic rename() call the default value will be ’’5’’.
from_field
type: string
default value:
From: $sender${if def:sender_name: ($sender_name)}
This string will be expanded to form From: or Sender: header fields. The expanded string must begin with ’’From:’’, which may be replaced by other strings to form an actual header field.
grades
type: string
default value:
special-delivery:9:air-mail:A:first-class:C:bulk:a:junk:n
The priority, or grade, characters corresponding to particular values of the Precedence: field in the message header. The parts of the string are separated by colons (’:’) with alternating precedence string and grade character. Numbers are higher in priority than upper case letters which are in turn higher than lower case letters. Also note that smaller numbers are higher in priority than larger numbers, and the same goes for letters lower in the alphabet. Grades in the range ’’[a-m]’’ will only have an error message and header returned to the sender on errors, rather than including the message body as well. Grades in the range ’’[n-z]’’ will not have anything returned to the sender on errors. The precedence names recognised by many BSD sendmail configurations are: special-delivery, first-class, and junk. Others are useful mainly for getting mail out of the local machine or for communication with other machines running Smail in a similar configuration. The grade character for a message is available in string expansions as the $grade variable.
hit_table_len
type: number
default value: 241
The length of an internal address hit table. Addresses are hashed into this table to prevent multiple deliveries to the same address. Longer tables speed address hashing at a small memory expense.
If your system does not have a a large virtual address space the default value will be ’’13’’.
NOTE: This value may be ignored/deprecated in the future.
host_lock_timeout
type: interval
default value: 30s
Specify the timeout for locking a host’s retry file for the purpose of exclusive delivery to that host. If the file cannot be locked within the specified time, then the message delivery is deferred until a later queue run after the retry time expires on the retry file. This timeout is in some ways like a short first-stage retry time that will prevent an in-progress delivery by another Smail process from causing this process to defer this message for an entire full retry interval. You probably don’t want to make this value very large -- certainly it should be no longer than it will take to deliver one message to a given destination.
Note that this timeout does not apply to runq processes attempting to deliver deferred messages. A runq process will immediately go on to another message (or other destination for the current message if it has more than one) if the retry file needed for the current message is already locked.
Remember Smail doesn’t normally allow multiple simultaneous deliveries to occur to the same host (though in the case of SNMP and DNS it’s possible for a given host (i.e. machine answering at a given IP number) to have more than one name, in which case Smail will potentially connect to that machine once for every name it has.
A number given with no units suffix indicates the value is in seconds. Values can also be written as a sequence of numbers with suffixes to indicate a time multiplier: ’m’ indicates minutes, ’h’ indicates hours, and ’d’ indicates days.
hostnames or hostname
type: string
default value: (computed at run time)
A colon-separated list of names for the local host. This list, together with uucp_host and more_hostnames should represent all possible names for the local host. For a host with both a registered Internet domain and also has a name in the UUCP zone, localhost.uucp should also be given in this list.
Note the value of visible_name is not recognised as a name for the local host unless it also appears in the value for one of the other hostname variables.
The first value in hostnames is used internally as a special ’’primary name’’ for the local host (see primary_name in smail(5)).
If hostnames is set turned off (which is generally the default) then the hostnames value will be computed by pairing the local host’s name, computed in a system-dependent manner, with all values in the domains attribute list.
WARNING: Do not include the names of domains this machine is a gateway (i.e. mail exchanger) for, but put those in more_hostnames instead.
listen_name
type: string
default value: (none)
This variable may be set to the DNS name of an interface on which the SMTP daemon should listen. By default the the listens are done using the wildcard address (INADDR_ANY). See also the sending_name attribute.
lock_by_name
type: boolean
default value: (system-dependent)
If this is on, then input spool file locking is always based on lock files. Otherwise, an inode-based locking mechanism may be used, such as flock(2) under BSD, or lockf(3) on older UNIX systems. Inode-based locking is more efficient, if available. However, lock files can be easily created by shell scripts which may be advantageous under some circumstances.
lock_mode
type: number
default value: 0444
The creation mode for lock files.
log_mode
type: number
default value: 0664
The creation mode for the various mail system log files.
logfile
type: string
default value: /var/log/smail/logfile
The name of a file to which transaction and error messages are appended. If this file does not exist, it is created with its permissions taken from the log_mode attribute.
max_hop_count
type: number
default value: 20
If the hop count for a message equals or exceeds this number, then attempts at remote delivery will result in an error message being returned to the sender. This is used to prevent infinite loops. The hop count for a message can be set using the ’’-h’’ option when invoking smail. Otherwise it is computed from the number of Received: fields in the message header.
max_load_ave
type: number
default value: 0
For systems on which a load average can be computed, this specifies the maximum system load average at which mail delivery will be performed, otherwise this value is ignored. If the load average exceeds this number, incoming mail will be saved in the input spool directory, though no delivery will be performed. If this value is 0 the load average will not be computed and delivery will always be performed. Normally the load average refers to a 5 minute load average based on the number of jobs ready to run over the sample time. (This feature is not currently implemented)
max_message_size
type: number
default value: 1M
Messages larger than this limit will be rejected by Smail when received via SMTP.
NOTE: It is not clear how best to handle excessively large messages received by UUCP.
message_buf_size
type: number
default value: 100k
The size of an internal buffer for reading and writing messages. For systems with a reasonably large virtual address space, this can be equal to the maximum size for messages. Specifying the value of in which case reading messages and then delivering them to one or more destinations requires very few read calls, as the entire message is always kept in memory.
If your system does not have a large address space the value of BUFSIZ will be the default. BUFSIZ refers to the defined symbol in /usr/include/stdio.h.
message_id_field
type: string
default value:
Message-Id: <$message_id@$primary_name>
This string will be expanded to form the Message-Id: message header field. This will be used if such a field does not already exist in the message headers.
message_log_mode
type: number
default value: 0644
Each message has associated with it a unique file containing a transaction log for that message. This number specifies the creation mode for this log file.
method_dir
type: string
default value: methods
If a method attribute for a router does not specify a pathname beginning with ’/’, then this directory is prepended to the path to form the complete path for the method file. If this does not begin with a slash (’/’), it will be referenced relative to the smail_lib_dir directory. See the description of the routers file for more information on method files.
more_hostnames or gateway_names
type: string
default value: (none)
A colon-separated list of domain names for which this host will do local mail delivery or private routing for (i.e. the list of domains which this host will act as the primary mail echanger for). This list is used in addition to any names in the value of hostnames thus it should only specify names which are not formed from the computed name for the host.
WARNING: Note that virtual domains handled by pathalias or rewrite router drivers should not be listed here (nor in hostnames) since only domains handled via directors need be listed (and besides, routers take precedence over directors).
nobody
type: string
default value: (site-dependent)
This names a default user that defines permissions when no other user is specified. Also note this user is used in some conditions when it is not certain whether a set of actions can be trusted if performed as other, potentially more powerful users. This should reference a user-ID which has few, or no, capabilities for doing harm or accessing protected files.
On many systems, especially those that support NFS, the default value will be ’’nobody’’.
paniclog
type: string
default value: /var/log/smail/paniclog
The name of a file to which panic and very important error messages are appended. If this file does not exist, it is created with a mode from the log_mode attribute. Entries written to this log file represent problems that require human intervention, such as configuration errors or directory permission errors preventing mail spooling or delivery.
Configuration errors generally cause mail to be moved into a special error directory under the input spool directory, thus preventing attempts at re-delivery until the configuration error has been corrected.
Thus, both the paniclog file and the error directory should be checked periodically under normal use, and frequently after configuration changes. When any problems have been resolved, these messages can be re-queued for delivery by using mv(1) to move the spool files back into the spool directory. However, before doing so, the file in the msglog directory for each message should be checked. If the address which caused the message to be moved to the error directory is marked as failed, then that line should be removed from the msglog file, because otherwise smail will not try to deliver to that address again.
See checkerr(8) for information about automatically performing such checks.
postmaster_address
type: string
default value: root
This is the default address for the postmaster. If the address Postmaster is not resolved by any of the configured directors, then this address is used.
qualify_file
type: string
default value: qualify
Names the file containing the hostname qualification information. If this does not begin with a slash (’/’), it will be referenced relative to the smail_lib_dir directory.
queue_only
type: boolean
default value: off
If this is set then smail will not immediately attempt delivery for incoming mail. The smail program will then only attempt delivery when explicitly processing the input queue, such as when invoked with the ’’-q’’ flag.
received_field
type: string
default value:
Received:
\
${if def:sender_host\
{from $sender_host${if def:sender_host_addr\
{(${if and{{def:sender_host_really}\
{!eq{sender_host_really}{$sender_host}}}\
{$sender_host_really}}[$sender_host_addr])}} }\
else {${if def:sender_host_addr\
{from ${if def:sender_host_really\
{$sender_host_really}}[$sender_host_addr] }\
else {${if origin:local\
{from localhost }}}}}}\
${if def:message_size\
{($message_size bytes) }}\
by $primary_name\n\t\
${if def:sender_program\
{via $sender_program }}\
${if def:sender_proto\
{with P:$sender_proto}\
else {with P:stdio}}\
${if def:director\
{/D:$director}}\
${if def:router\
{/R:$router}}\
${if def:transport\
{/T:$transport}}\n\t\
${if or{{def:sender} {def:owner}}\
{(${if def:sender\
{sender: <$sender>}\
}${if and{{def:sender} {def:owner}}\
{ }\
}${if def:owner\
{owner: <$owner>}}) }}\
${if def:ident_sender\
{(ident <$ident_sender> using
$ident_method)}\
else {${if origin:local\
{(ident <$sender> using unix)}}}}\n\t\
id <$message_id@$primary_name>\n\t\
${if def:input_addr\
{for ${if origin:local\
{<}}${top:input_addr}${if origin:local\
{>}}}\
else {for <unknown>}}\
; $spool_date\n\t\
($version_string built $compile_date)
This string will be expanded to form the Received: header field. This field will be inserted into the message headers if the received attribute is not explicitly turned off for the transport delivering the current message.
require_configs
type: boolean
default value: off
If this is not set, then configuration files are not required to exist. This applies to the config and second_config_file files and to the director_file, router_file, and transport_file files. If one of these files does not exist then it is ignored and internally compiled configuration is used instead. If this attribute is set, then any configuration file, which does not have a NULL filename (for example, using −router_file to clear the name for the router file) and which does not exist, will cause smail to generate a panic message.
resolve_timeout
type: interval
default value: 3d
This sets a timeout for how long smail will continue attempting to resolve an address (that is route or direct it). This timeout causes messages to be bounced if they have not been resolved after this timeout has expired.
retry_file
type: string
default value: retry
Names the file containing the retry control information. If this does not begin with a slash (’/’), it will be referenced relative to the smail_lib_dir directory. See the smailrtry(5) manual page for further information.
retry_duration
type: interval
default value: 5d
Specify the default duration for attempting deliver of messages. This value will only be used if there’s no wildcard entry in the file specified by retry_file. See the smailrtry(5) manual page for further information.
If a message cannot be delivered within this period of time then the message delivery fails and a bounce message is sent to the sender, or to the list owner, if there is one (and possibly to the Postmaster too). A number with no units suffix indicates the value is in seconds. Values can also be written as a sequence of numbers with suffixes to indicate a time multiplier: ’m’ indicates minutes, ’h’ indicates hours, and ’d’ indicates days.
retry_interval
type: interval
default value: (2 * queue_interval)
Specify the default retry interval for connecting to inaccessible hosts. This value will only be used if there’s no wildcard entry in the file specified by retry_file. See the smailrtry(5) manual page for further information.
If a host is temporarily unreachable, then smail will avoid attempting to deliver to that host until this period of time has elapsed. This applies to all messages, so that queue runs will not block each message waiting for a timeout for a particular set of inaccessible hosts.
The default value (also attained by explicitly using a setting of ’’0’’) is twice whatever is given as the queue run interval with the ’’-q’’ parameter. This will prevent messages to one or more domains with many dead/broken MX targets from blocking the queue with every queue run attempt and will allow other messages in the queue to be processed more quickly. In extreme circumstances this may help avoid accumulating too many queue run processes that are doing nothing useful.
A number with no units suffix indicates the value is in seconds. Values can also be written as a sequence of numbers with suffixes to indicate a time multiplier: ’m’ indicates minutes, ’h’ indicates hours, and ’d’ indicates days.
return_path_field
type: string
default value:
Return-Path: <$sender>
This string will be expanded to form the Return-Path: message header field. This field will be inserted into the header if the return_path attribute is turned on for the transport doing the message delivery.
rfc1413_query_timeout
type: number
default value: −1
This defines the timeout for RFC 1413 ’’ident’’ protocol queries on incoming SMTP connections. Values of zero or less mean that no query is made (queries are initially disabled). This is only available if RFC1413 support is compiled into your copy of smail.
router_file
type: string
default value: routers
Names the file containing the router configuration information. If this does not begin with a slash (’/’), it will be referenced relative to the smail_lib_dir directory.
runq_grades
type: string
default value: (none)
The grades of message which will be processed by a normal queue run. Other grades of message are ignored by a queue run, but can be processed by a smail with a different runq_grades setting or by overriding the setting using the ’’−oG’’ command line option. This allows low priority mail to be processed in special queue runs to cut down system load in peak hours. See the discussion of the delivery_grades configuration variable to learn the meaning of the grade range.
second_config_file
type: string
default value: (none)
This names one or more secondary configuration file(s) which can define attribute values which override internal defaults and values in the primary configuration file. Multiple file names are separated by colons. If a name does not begin with a slash (’/’), it will be referenced relative to the smail_lib_dir directory.
This features is primarily useful in networks containing machines that share filesystems. By having a shared primary configuration file most systems on a network need not be concerned with maintaining the smail program, while other systems may want or need to use a different configuration, while sharing the same binary. In particular, the smart_user, smart_path, and smart_transport attributes are commonly set in the secondary configuration file.
sender_env_variable
type: string
default value: (none)
This names an environment variable that can be used to name the sender. Normally, the sender is determined from system login information, or by checking the real user-ID of the calling process. If sender_env_variable is set, and an environment variable with the given name exists, then use it, by default. This can be set to ’’LOGNAME’’ for use with modern Unix systems, or ’’USER’’ for older BSD based systems.
sending_name
type: string
default value: (none)
This variable may be set to the DNS name of an interface to which SMTP connections should be bound locally. By default connections are not bound to any specific address.
smail
type: string
default value: /usr/sbin/smail
Name a valid path to a smail binary that can be used to re-invoke smail when a major configuration change has been detected, or to invoke smail for delivery of error messages. If this does not begin with a slash (’/’), it will be referenced relative to the smail_lib_dir directory.
smail_lib_dir
type: string
default value: /etc/smail
This defines the path to the smail configuration file directory. The router, director and transport files, as well as alias and path files and method files may be referenced relative to this directory.
smail_util_dir
type: string
default value: /usr/lib/smail
This defines the path to directory containing most smail utilities. In particular, smail expects to find the mkaliases and mkdbm utilities in this directory.
smart_path
type: string
default value: (none)
This defines the default value for the path attribute used by the smarthost router driver. This gives the path to a machine which supposedly contains a more complete routing database than is available on the local host. See the smailrtrs(5) manual for more information on the use of this attribute.
smart_transport
type: string
default value: (none)
This defines the default value for the transport generic attribute used by the smarthost router driver.
smart_user
type: string
default value: (none)
This defines the default value for the new_user attribute used by the smartuser director driver. See the smaildrct(5) manual for more information on the use of this attribute.
WARNING: The contents of variables such as $user, $sender, etc., are under the control of the remote user. If these strings are passed to a pipe command via a shell command line it is extremely important that expansion of these variables be very carefully protected by proper shell quoting.
For example:
smart_user="|/local/sbin/phquery -f ${shquote:sender} \ ${shquote:user}"
Note also that if this command is itself a script it must also treat the values of these arguments as potentially containing meta characters and such. Similarly for any program which may pass these values on to another via a shell command line.
smtp_accept_max
type: number
default value: 0
The maximum number of SMTP connections that smail will accept at any one time. This is for use with SMTP daemons started with the ’’−bd’’ command-line option. If connection requests come in while when this number of SMTP−connection children are forked, the connection will be shutdown with an SMTP ’’421’’ reply.
If this value is zero, then the number of SMTP connections is not limited.
smtp_accept_queue
type: number
default value: 0
If this number of SMTP connection processes is exceeded, then additional connections will be accepted, but their messages will be queued and will not be processed until a later queue run. When the number of current connection processes drops below this number, immediate mail processing will resume, depending upon the value of delivery_mode.
If this value is zero, then SMTP connections will not be converted to queue-only mode based on the number of connections. Note that the value of smtp_accept_queue should be less than the value of smtp_accept_max, and that setting smtp_accept_max to zero prevents smtp_accept_queue from working correctly in all cases.
smtp_allow_debug
type: boolean
default value: on
This boolean variable controls the meaning of the ’’DEBUG’’ command when receiving SMTP commands. If the variable is on, then the ’’DEBUG’’ command (with an optional debugging level) sets debugging to the specified level, or 1 if no level was specified. The debugging output will be written over the SMTP
Having this enabled may enable people to gain more information than you would like about your systems, and so could be used as a prelude to a break-in attempt. Note that the ’’DEBUG’’ command cannot be directly used to gain any form of access.
smtp_allow_expn
type: boolean
default value: on
This boolean variable enables the use of the SMTP ’’EXPN’’ command. Some sites may wish to disable this command to prevent divulging the contents of mailing lists and aliases.
smtp_bad_mx_targets
type: string
default value:
":10/8;RFC-1918 addresses are never valid for MX targets on the public Internet!\ :127/8;localhost is never valid for any MX target on the public Internet!\ :169.254/16;DHCP local addresses are never valid for MX targets on the public Internet!\ :172.16/12;RFC-1918 addresses are never valid for MX targets on the public Internet!\ :192.16/16;RFC-1918 addresses are never valid for MX targets on the public Internet!\ :192.0.2/24;Reserved addresses are never valid for MX targets on the public Internet!"
A colon-separated list of IP or IP network numbers that are checked against the target addresses of DNS MX hosts for sender domains. Any MX host with a matching target address will cause the connection to be rejected by a 550 status message.
An optional text message to present in the reject message follows a semicolon after the IP/net number. Note that the message text is not quoted so it must not contain another ’:’ character. Escape processing as described in smail(5) cannot protect a field separator. Note that if you use the semicolon separator then you must either escape it with a backslash or enclose the entire variable definition in double quotes. The text message may contain semicolons itself though since it extends to the end of the field (i.e. to the next ’:’ character).
smtp_banner
type: string
default value:
"Smail$version #$compile_num ready at $date"
This string will be expanded to form the SMTP startup banner that is written by the SMTP server when a connection request is accepted. The value of primary_name (followed by a space) is automatically prepended to to this value, as required by the SMTP protocol. Each line of this message is automatically preceded by a ’’220’’ identification code, and newlines are correctly changed into a carriage-return newline sequences.
If ESMTP is configured in Smail the default value is:
"Smail$version #$compile_num ready at $date\n\ ESMTP spoken here"
smtp_error_delay
type: number
default value: 60
The number of seconds to delay before sending the last line of any SMTP error response. This can be set to some reasonable number up to as high as 200 seconds or so so as to delay any client from attempting an immediate re-try (as unfortunately many do). RFC 2821 requires the client wait for at least five minutes for initial greetings, MAIL, and RCPT command responses, but other delays may already have been introduced by normal processing so stay well below this absolute limit. At the moment this is a blanket delay applied indescriminantly to all errors (and does not include the hard-coded one-second inter-line delay also implemented in many responses).
smtp_expn_delay
type: number
default value: 10
The number of seconds to delay after processing an SMTP ’’EXPN’’ command. This can be set to some reasonable number so as to delay anyone attempting to do dictionary-style guessing attacks while at the same time not preventing human use of ’’EXPN’’.
smtp_hello_broken_allow
type: string
default value: (none)
A colon-separated list of client IP or IP network numbers that are allowed to deliver mail even though they may have given an incorrect ’’HELO’’ or ’’EHLO’’ SMTP greeting name, or errors were found in the DNS for the greeting name, or if there’s no PTR for the client when smtp_hello_verify_ptr is set.
Minor syntax errors in the name are also permitted to clients in this list, such as use of underscore characters, as well as use of unqualified names (which are normally always rejected even when smtp_hello_verify is disabled).
All connections where the peer address is the same as the socket address (i.e. if the connection is from the local host) are allowed by default.
See smail(5) (under ’’IP and IP Network Number Representation’’) for a description of the syntax of IP and IP network numbers, as well as any magic values that may be used to represent such numbers.
smtp_hello_dnsbl_domains
type: string
default value: (none)
This is a colon-separated list of Realtime DNS Black List (DNSBL) domains in which the verified SMTP greeting name is searched for (after first checking the name, if smtp_hello_verify is enabled, and checking the reverse DNS, if smtp_hello_reject_dns_paranoid and/or smtp_hello_verify_ptr is/are enabled, and finally after first checking the name against any regular expressions given in smtp_hello_reject_hostnames).
Most DNS Black lists use an A record value of 127.0.0.2 to indicate that a host is listed. Optionally a comma-separated list of valid DNS A record values, either as explicit 4-octet ascii-form host addresses, or in a network/mask form, may follow a semicolon after any domain to explicitly define the which results will trigger a match. Note that if you use the semicolon separator then you must either escape it with a backslash or enclose the entire variable definition in double quotes.
A match in any BL will cause the connection to be rejected by a 550 status message that includes the DNSBL name in the text of the message, along with the content any associated DNS TXT record for the same domain.
smtp_hello_dnsbl_except
type: string
default value: (none)
A colon-separated list of client IP or IP network numbers that are not looked up in the blacklists specified in smtp_hello_dnsbl_domains.
See smail(5) (under ’’IP and IP Network Number Representation’’) for a description of the syntax of IP and IP network numbers, as well as any magic values that may be used to represent such numbers.
smtp_hello_reject_dns_paranoid
type: boolean
default value: on
This flag is the equivalent of the TCP Wrappers ’’PARANOID’’ check. It is slightly less strict than smtp_hello_verify_ptr, and far more important since it catches DNS spoofing attacks in progress!
The implementation checks that the name(s) given in one or more PTR records for the remote client address resolve to hostnames giving one or more A records of which one must give the address being checked (for each PTR name found).
smtp_hello_reject_hostnames
type: string
default value:
"localhost(\\.)*;You’ve got to be kidding! If you really were ’localhost’ I’d be talking to myself!\ :.*\\.localdomain;There is no such domain ’localdomain’ you spammer!\ :.*\\.test;There is no such domain ’test’ -- it is reserved by IANA as per RFC 2606\ :.*\\.example;There is no such domain ’example’ -- it is reserved by IANA as per RFC 2606\ :.*\\.invalid;There is no such domain ’invalid’ -- it is reserved by IANA as per RFC 2606\ :.*\\.localhost;There is no such domain ’localhost’ -- it is reserved by IANA as per RFC 2606\ :(.*\\.)*example\\.com;There is no such domain ’example.com’ -- it is reserved by IANA as per RFC 2606\ :(.*\\.)*example\\.net;There is no such domain ’example.net’ -- it is reserved by IANA as per RFC 2606\ :(.*\\.)*example\\.org;There is no such domain ’example.org’ -- it is reserved by IANA as per RFC 2606\ :${rxquote:hostnames}"
A colon-separated list of hostname regular expressions the already syntax checked, and optionally verified, SMTP greeting name is compared against if the peer address is not the same as the socket address (i.e. if the connection is not from the local host). A match will cause the connection to be rejected by a 550 status message unless the client’s IP address is the same as the local endpoint IP address (i.e. unless the client is running on the local machine).
An optional text message to present in the reject message follows a semicolon after an expression. Note that the message text is not quoted so it must not contain another ’:’ character. Escape processing as described in smail(5) cannot protect a field separator. Note that if you use the semicolon separator then you must either escape it with a backslash or enclose the entire variable definition in double quotes. The text message may contain semicolons itself though since it extends to the end of the field (i.e. to the next ’:’ character).
As you can see from the default value any configuration items and/or variable are expanded, complete with meta-expansion features, when this item is used, as described in smail(5). This allows other colon-separated lists of hostnames, including those derived at run time, to be included in this list. Note however that such expansions are done before sub-fields are searched so if any optional description is included after such an entry it will only result in the text applying to the last name in any expanded list.
WARNING: Do not arbitrarily include more_hostnames in this list! Doing so would block the hosts this server MXs for from delivering to addresses at their own domain names.
Note the default value depends on use of IEEE Std 1003.2-1992 (POSIX.2) regex(3) with full support for the REG_EXTENDED flag for modern extended regular expressions.
smtp_hello_verify
type: boolean
default value: on
This flag tells smail to verify the hostnames given in ’’HELO’’ or ’’EHLO’’ SMTP greeting command. This means the hostname specified in the greeting must resolve to a valid DNS ’’A’’ resource record with a target address matching the client connection source address.
Note that RFC 1123 says it is the responsibility of the remote SMTP client to supply a valid canonical hostname and that the SMTP server ’’MUST NOT’’ reject a connection just because some arbitrary verification fails on this hostname. However in the Internet today we cannot usually trust the sender and so we must violate RFC 1123 in this respect lest the sender does the same to us while we’re not checking. Remember that RFC 1123 was written in the days when it was unthinkable that a home PC would be used to initiate SMTP sessions, let alone 30,000,000 plus PCs all hammering on your SMTP port.
Note that disabling this flag does not turn off syntax checking of the SMTP greeting. See smtp_hello_broken_allow, described above, for that.
smtp_hello_verify_literal
type: boolean
default value: on
If the greeting hostname given with the ’’HELO’’ or ’’EHLO’’ SMTP greeting command is a literal IP address (eg. ’’[127.0.0.1]’’), this flag tells smail to look up the domain name associated with the address given by the literal. This means the connecting host must have valid DNS, i.e. a ’’PTR’’ resource record for the connection address (sender_host_address), and the name given by the PTR must return an ’’A’’ resource record with an address matching the connection address. See the caveat for smtp_hello_verify for standards conformance notes.
smtp_hello_verify_ptr
type: boolean
default value: off
This flag tells smail to verify that there’s a DNS ’’PTR’’ resource record for the connection address and that it (or one of its aliases) matches the hostname given with the ’’HELO’’ or ’’EHLO’’ SMTP greeting command. This check is off by default because there’s still a large segment of the Internet the doesn’t have proper reverse DNS. See the caveat for smtp_hello_verify for standards conformance notes.
smtp_host_dnsbl_domains
type: string
default value: (none)
This is a colon-separated list of Realtime DNS Black List (DNSBL) domains in which the client host’s domain name (as given in the primary DNS PTR record for the client’s address) is searched for.
Most DNS Black lists use an A record value of 127.0.0.2 to indicate that a host is listed. Optionally a comma-separated list of valid DNS A record values, either as explicit 4-octet ascii-form host addresses, or in a network/mask form, may follow a semicolon after any domain to explicitly define the which results will trigger a match. Note that if you use the semicolon separator to specify a sub-field then you must either escape it with a backslash or enclose the entire variable definition in double quotes.
A match in any BL will cause the connection to be rejected by a 550 status message that includes the DNSBL name in the text of the message, along with the content any associated DNS TXT record for the same domain.
smtp_host_dnsbl_except
type: string
default value: (none)
A colon-separated list of client IP or IP network numbers that are not looked up in the blacklists specified in smtp_host_dnsbl_domains.
See smail(5) (under ’’IP and IP Network Number Representation’’) for a description of the syntax of IP and IP network numbers, as well as any magic values that may be used to represent such numbers.
smtp_host_reject_hostnames
type: string
default value:
"localhost(\\.)*;You have got to be kidding! If you really were ’localhost’ I would be talking to myself!\ :.*\\.localdomain;The domain ’localdomain’ is not valid!\ :.*\\.test;The domain ’test’ is not valid -- it is reserved by IANA as per RFC 2606\ :.*\\.example;The domain ’example’ is not valid -- it is reserved by IANA as per RFC 2606\ :.*\\.invalid;The domain ’invalid’ is not valid -- it is reserved by IANA as per RFC 2606\ :.*\\.localhost;The domain ’localhost’ is not valid -- it is reserved by IANA as per RFC 2606\ :(.*\\.)*example\\.com;The domain ’example.com’ is not valid -- it is reserved by IANA as per RFC 2606\ :(.*\\.)*example\\.net;The domain ’example.net’ is not valid -- it is reserved by IANA as per RFC 2606\ :(.*\\.)*example\\.org;The domain ’example.org’ is not valid -- it is reserved by IANA as per RFC 2606\ :${rxquote:hostnames}"
A colon-separated list of hostname regular expressions the client host’s domain name (as given in the primary DNS PTR record for the client’s address) is compared against if the peer address is not the same as the socket address (i.e. if the connection is not from the local host). Any match will cause the connection to be rejected by a 550 status message.
An optional text message to present in the reject message follows a semicolon after an expression. Note that the message text is not quoted so it must not contain another ’:’ character. Escape processing as described in smail(5) cannot protect a field separator. Note that if you use the semicolon separator to specify a sub-field then you must either escape it with a backslash or enclose the entire variable definition in double quotes. The text message may contain semicolons itself though since it extends to the end of the field (i.e. to the next ’:’ character).
As you can see from the default value any configuration items and/or variable are expanded, complete with meta-expansion features, when this item is used, as described in smail(5). This allows other colon-separated lists of hostnames, including those derived at run time, to be included in this list. Note however that such expansions are done before sub-fields are searched so if any optional description is included after such an entry it will only result in the text applying to the last name in any expanded list.
WARNING: Do not arbitrarily include more_hostnames in this list! Doing so would block the hosts this server MXs for from delivering to addresses at their own domain names.
smtp_local_sender_allow
type: string
default value:
"mailer-daemon:owner-.*:postmaster:real-.*:.*-request"
A colon-separated list of regular expressions used when smtp_local_sender_restrict is enabled to check if the sender address local part matches an authorised mailbox. These are some of the sender addresses which may commonly be used on messages re-routed (forwarded) back to the local machine, such as the owner addresses used for distributing mailing lists, or those used by the dotforward director, etc.
Note that a case-insensitive match is always done if the host platform’s underlying regular expression library is POSIX compliant.
smtp_local_sender_restrict
type: boolean
default value: off
Enabling this flag tells Smail to do basic sender address anti-spoofing protection by ensuring that any sender address which is locally deliverable has come from an authorised client (i.e. the client’s source IP address must match an entry in smtp_remote_allow), or if the local part of the sender address matches any entry in the list of regular expressions in smtp_local_sender_allow
WARNING: If you host virtual domains for users who don’t always use your mail server to relay their outgoing mail then you do not want to enable this feature or they may not be able to send e-mail to themselves from any other server (assuming they use their ’’local’’ sender address and of course assuming the remote server allows them to do so).
Note that RFC-2822 header anti-spoofing can be simulated to some degree by simply forcing all Sender: and From: header fields to be re-written in conjunction with this feature.
smtp_max_recipients
type: number
default value: 100
The maximum number of recipients that can be specified in a single SMTP envelope. If too many recipients are specified each one over the maximum will be rejected with an SMTP ’’452’’ reply message.
If this value is zero (or explicitly unset), then the number of recipients per SMTP envelope is not limited.
smtp_max_bounce_recipients
type: number
default value: 1
The maximum number of recipients that can be specified in the SMTP envelope for a bounce message, i.e. a message where the SMTP envelope sender address is the null address.
If this value is zero (or explicitly unset), then the number of recipients per bounce message defaults to the current value of smtp_max_recipients.
Normally only one recipient can ever be specified for a bounce message since there’s only ever one SMTP envelope address to which a bounce can be returned to. A common counter-example to this is bounces from mailing lists, or indeed bounces to any mailbox which may be aliased to more than one person at the same remote domain. Of course this only matters if this particular mailer instance is handling that remote domain (and if the remote mailer on the list host will attempt to send one message to multiple SMTP recipients at a time).
smtp_permit_mx_backup
type: string
default value: (none)
A colon-separated list of hostname regular expressions the target domain name of a recipient address must match before relaying to the primary MX for the target domain name will be allowed. If this list is not empty then a failure to match at least one entry in the list will result in the recipient address being rejected with a remote relay security violation error. Any match will allow Smail to go on to check if any secondary MX records for the target domain name match a locally handled hostname, and if so the recipient address will be accepted and the message queued for eventual delivery to the primary MX host.
To disable all support for secondary MX relaying set this variable as follows:
smtp_permit_mx_backup="!.*"
smtp_rbl_domains
type: string
default value: (none)
This is a colon-separated list of Realtime/Reverse Blocking/Black List (RBL) domains in which a DNS A record for the ASCII-octet-reversed (as with .IN-ADDR.ARPA) connecting client address is looked up.
The de facto standard set for DNS RBL configurations by the Mail Abuse Prevention System LLC (MAPS project, founded by Paul Vixie) uses an A record value of 127.0.0.2 to indicate that a host is listed. Since some other RBLs use other A record values to indicate other meanings a comma-separated list of valid DNS A record values, either as explicit 4-octet ascii-form host addresses, or in a network/mask form, may follow a semicolon after any domain. Note that if you use the semicolon separator to specify a sub-field then you must either escape it with a backslash or enclose the entire variable definition in double quotes.
A match in any RBL will cause the connection to be rejected by a 550 status message that includes the RBL name in the text of the message, along with the content any associated DNS TXT record for the same domain.
An example:
smtp_rbl_domains="rbl1.domain;127.0.0.1,10/8\ :rbl2.domain;127.0.0/24"
Some of the most commonly used RBLs for blocking unsolicited e-mail are hosted by MAPS: <URL:http::/www.mail-abuse.org/> and another well known RBL for blocking e-mail from insecure (open relay) servers is hosted by ORBL: <URL:http::/www.orbl.org/>. A list of similar RBLs can be found here: <URL:http://www.declude.com/JunkMail/Support/ip4r.htm>
See smail(5) (under ’’IP and IP Network Number Representation’’) for a description of the syntax of IP and IP network numbers. Note that in this case none of the magic values that may be used to represent such numbers are likely to be of any use.
smtp_rbl_except
type: string
default value: localnet
This is a colon-separated list of IP or IP network numbers for client hosts that should not trigger RBL lookups.
An optional text message to document the reason for the exception follows a semicolon after a domain. Note though that this message won’t appear anywhere in the message, the logs, or the SMTP session. Note also that the message text is not quoted so it must not contain another ’:’ character. Escape processing as described in smail(5) cannot protect a field separator. Note that if you use the semicolon separator to specify a sub-field then you must either escape it with a backslash or enclose the entire variable definition in double quotes. The text message may contain semicolons itself though since it extends to the end of the field (i.e. to the next ’:’ character).
An example:
smtp_rbl_except="172.16.99.4;Our dial-up subnet.\ :192.168.30/24;This is our friend’s net."
See smail(5) (under ’’IP and IP Network Number Representation’’) for a description of the syntax of IP and IP network numbers, as well as any magic values that may be used to represent such numbers.
smtp_receive_command_timeout
type: interval
default value: 5m
This interval defines the timeout for each SMTP receiver command for interactive SMTP daemons. If a command is not received within this period of time after a prompt, then the connection is closed down and the SMTP receiver exits.
smtp_receive_message_timeout
type: interval
default value: 2h
This interval defines the timeout for reading a message with the ’’DATA’’ command for interactive SMTP daemons. If the entire message is not received within this period of time after the ’’354’’ reply prompt, then the message is removed, the connection is closed down, and the SMTP receiver process exits.
smtp_recipient_no_verify
type: string
default value: (none)
A colon-separated list of client IP or IP network numbers that are allowed to deliver remote mail via SMTP and which do not need or want target addresses specified in ’’RCPT TO:’’ commands to be verified immediately during message delivery. Setting this to a list of local network numbers helps clients deliver mail immediately to the queue without needing to wait for possible DNS lookup timeouts. Some MUAs (and even some primitive MTAs) that use SMTP for mail delivery do not have sufficient or adjustable timeouts and may fail to deliver mail when network or remote nameserver problems cause delays. This variable has precedence over smtp_remote_allow. If you need to set this then you should probably be setting it to the same list as you use in smtp_remote_allow.
See smail(5) (under ’’IP and IP Network Number Representation’’) for a description of the syntax of IP and IP network numbers, as well as any magic values that may be used to represent such numbers.
smtp_reject_hosts
type: string
default value: (none)
This is a colon-separated list of IP or IP network numbers for client hosts that should be immediately and permanently be rejected using an SMTP 550 status message.
An optional text message to present in the reject message text follows a semicolon after the IP number. Note that the message text is not quoted so it must not contain another ’:’ character. Escape processing as described in smail(5) cannot protect a field separator. Note that if you use the semicolon separator to specify a sub-field then you must either escape it with a backslash or enclose the entire variable definition in double quotes. The text message may contain semicolons itself though since it extends to the end of the field (i.e. to the next ’:’ character).
An example:
smtp_reject_hosts="172.16.99.4;Go away you nutcase!\ :192.168.30/24;What a naughty net you have!"
See smail(5) (under ’’IP and IP Network Number Representation’’) for a description of the syntax of IP and IP network numbers, as well as any magic values that may be used to represent such numbers.
smtp_remote_allow
type: string
default value: localnet
A colon-separated list of client IP or IP network numbers that are allowed to deliver remote mail via SMTP. Setting this to a list of local network numbers helps stop remote systems from using your mailer to spoof headers in mail bound to remote addresses. This list is used for verification of the target addresses specified in all ’’VRFY’’ and ’’RCPT TO:’’ SMTP commands.
Note that mail is implicitly accepted from arbitrary hosts if the target address is for any of the locally accepted domains, or if any of the locally accepted domain names are mentioned as MX hosts for the target address.
See smail(5) (under ’’IP and IP Network Number Representation’’) for a description of the syntax of IP and IP network numbers, as well as any magic values that may be used to represent such numbers.
smtp_sender_no_verify
type: string
default value: (none)
A colon-separated list of client IP or IP network numbers that are allowed to deliver remote mail via SMTP and which do not need or want target addresses specified in ’’MAIL FROM:’’ commands to be verified immediately during message delivery. Setting this to a list of local network numbers helps clients deliver mail immediately to the queue without needing to wait for possible DNS lookup timeouts. Some MUAs (and even some primitive MTAs) that use SMTP for mail delivery do not have sufficient or adjustable timeouts and may fail to deliver mail when network or remote nameserver problems cause delays.
Note that setting this variable, and thus disabling sender address verification unnecessarily, will make it possible for users to use incorrect sender addresses, and that may prevent them from ever receiving bounces or even replies (the latter in the usual case where the sender’s MUA uses the same address in the From: and/or Reply-To: header field(s) as it uses for the SMTP sender address).
See smail(5) (under ’’IP and IP Network Number Representation’’) for a description of the syntax of IP and IP network numbers, as well as any magic values that may be used to represent such numbers.
smtp_sender_reject
type: string
default value:
".*@localhost;There’s no such domain ’localhost’!"
A colon-separated list of expressions the SMTP envelope sender address (as given in the SMTP ’’MAIL FROM:’’ command) is checked against. Any match will cause the connection to be rejected by a 550 status message.
An optional text message to present in the reject message follows a semicolon after an expression. Note that the message text is not quoted so it must not contain another ’:’ character. Escape processing as described in smail(5) cannot protect a field separator. Note that if you use the semicolon separator to specify a sub-field then you must either escape it with a backslash or enclose the entire variable definition in double quotes. The text message may contain semicolons itself though since it extends to the end of the field (i.e. to the next ’:’ character).
smtp_sender_reject_db
type: string
default value:
"dead-mail.senders"
WARNING: This variable may be deprecated by the potentially more general smtp_sender_reject if a future release adds ${lookup expansion to item lists.
The name of a database containing strings that the SMTP envelop sender address (as given in the SMTP ’’RCPT TO:’’ command) is checked against. Any match will cause the connection to be rejected by a 550 status message.
An optional text message to present in the reject message follows the address on the same line.
The filename given by default value corresponds to the list of invalid sender addresses, maintained by checkerr(8), to which double bounces cannot be sent.
smtp_sender_reject_db_proto
type: string
default value:
"lsearch"
The lookup method for the smtp_sender_reject_db database. See the section File Lookups in smail(5) for a list of valid lookup methds and their use.
smtp_sender_reject_hostnames
type: string
default value:
".*\\.localdomain;There’s no such domain ’localdomain’ you spammer!"
WARNING: This variable may be deprecated by the more general smtp_sender_reject in a future release.
A colon-separated list of hostname regular expressions the SMTP envelope sender address domain name (as given in the SMTP ’’RCPT TO:’’ command) is checked against. Any match will cause the connection to be rejected by a 550 status message.
An optional text message to present in the reject message follows a semicolon after an expression. Note that the message text is not quoted so it must not contain another ’:’ character. Escape processing as described in smail(5) cannot protect a field separator. Note that if you use the semicolon separator to specify a sub-field then you must either escape it with a backslash or enclose the entire variable definition in double quotes. The text message may contain semicolons itself though since it extends to the end of the field (i.e. to the next ’:’ character).
smtp_sender_rhsbl_domains
type: string
default value: (none)
This is a colon-separated list of Realtime Right-Hand Side Blocking/Black Lists (RHSBL) domains in which a DNS A record for the target domain of the sender address is looked up as a subdomain.
The de facto standard set of DNS blacklists for checking sender addresses are managed by rfc-ignorant.org. Like the MAPS RBL they also use an A record value of 127.0.0.2 to indicate that a domain is listed.
A match in any domain will cause the connection to be rejected by a 550 status message that includes the blacklist name in the text of the message, along with the content any associated DNS TXT record for the same domain.
An example:
smtp_sender_rhsbl_domains="rhsbl1.domain;127.0.0.1,10/8\ :rhsbl2.domain;127.0.0/24"
smtp_sender_rhsbl_except
type: string
default value:
"${rxquote:hostnames}:${rxquote:more_hostnames}"
This is a colon-separated list of sender address target domain regular expressions that should not trigger RHSBL lookups.
An example:
smtp_sender_rhsbl_except="some.domain:another.domain"
As you can see from the default value any configuration items and/or variable are expanded, complete with meta-expansion features, when this item is used, as described in smail(5). This allows other colon-separated lists of hostnames, including those derived at run time, to be included in this list.
Note also that any semicolon separated sub-field value is simply ignored.
smtp_sender_verify_mx_only
type: boolean
default value: off
This flag tells smail to only look for DNS MX (mail exchanger) resource records when verifying the the host part of the SMTP envelope sender address. Strictly speaking all domain names used in SMTP should have DNS MX RRs associated, but it is common practice on the internet to allow a mail host to have only an A RR. In the default configuration Smail will also search for DNS A RRs that match the domain part of the sender address.
smtp_vrfy_delay
type: number
default value: 10
The number of seconds to delay after processing an SMTP ’’VRFY command. This can be set to some reasonable number so as to delay anyone attempting to do dictionary-style guessing attacks while at the same time not preventing human use of ’’VRFY’’.
spool_dirs
type: string
default value: /var/mail
This defines one or more directories into which incoming mail can be spooled. Directories are separated by single colon characters. When writing a message to the first spool directory fails, (say due to permission problems, filesystem full errors, etc.) successive spool directories are tried until the incoming message can be successfully written or until no more alternative directories exist.
Each spool directory is expected to have subdirectories of: input (to hold the actual spool files), lock (for temporary lock files), msglog (for temporary per-message transaction logs and audit trails), retry (for host retry information), error (to hold messages which failed due to configuration errors or other problems which require human intervention), and tmp (to hold temporary files in a safe non-world-writable place). Normally these directories will be created on demand. However in order to properly share retry information it may be prudent to at least try to make all retry entries be symbolic links.
Note that due to the way free space is reserved on the spool filesystem, only the last directory in this list will actually have free space reserved in it. Note also that if the goal is to provide for extra space then of course each directory must be on a separate filesystem.
Note that spool files should not be copied from one place to another. In the current implementation their names are BASE-62 encoded forms of the inode number of the message file, as well as the current time (in seconds since the epoch), so only in a perfect world will the copied files be ’’safe’’ in that they won’t ever clash with possible future spool files.
spool_grade
type: character
default value: C
This character names the default grade for messages. This can be overridden by a Precedence: field in the message header. The grade is used in sorting messages in the input spool directory and is also available in string expansions as the $grade variable. See the grades attribute for more information.
spool_mode
type: number
default value: 0440
This defines the file creation mode for spool files.
transport_file
type: string
default value: transports
names the file containing the transport configuration information. If this does not begin with a slash (’/’), it will be referenced relative to the smail_lib_dir directory.
trusted_users
type: string
default value: (none)
This names a list of users (separated by colons) who are trusted to specify a sender for a message. Users who are not in this list cannot specify a Sender: header field without it being removed.
If such users specify a From: header field, then a Sender: field will be created that specifies the real user that submitted this mail. Generally, this should be set to that names of all users under which remote mail is received by smail. If this list is turned off, using −trusted, then all users are trusted.
NOTE: The real user-ID is used in verifying trusted users. However, under many operating systems, the uucico(8) program runs under the real UID of the user that ran it and often any user can do so. Smail program cannot differentiate this case from any other case and will thus do the ’’wrong thing’’ here. If this problem exists on your machine, then the trusted attribute may need to be turned off.
trusted_groups
type: string
default value: (none)
This names a list of groups (separated by colons) that are trusted to specify a sender for a message. The groups specified are checked against the effective gid of smail. Thus, if smail is a set-group-ID program, then this string is of no value and should be turned off. However, if smail is not set-group-ID, then programs that invoke smail under a specific effective GID, while not a specific real UID, can be detected and can be properly treated as trusted.
uucp_name
type: string
default value: (computed at run time)
This specifies a name for the local host. This name is available in string expansions as the $uucp_name variable. It is also used in the ’’remote from hostname’’ suffix to ’’From<space>’’ lines for mail being delivered to remote machines when the from attribute is turned on for a transport.
visible_name
type: string
default value: (computed at run time)
The full domain name used in outgoing mail addresses within header fields. If visible_name is turned off, then it will be set to the first name from the hostnames attribute. If the hostnames attribute is not specified then that attribute will be filled in with hostnames of the form hostname.domain, where hostname is derived in a system-dependent manner and where domain, here, is the first name from the domains attribute. Note that each entry in the domains list is used, in sequence, to created the hostnames value if the latter is not explicitly specified.
For sites in the UUCP zone domains will often merely be the string ’’uucp’’.
FILES
/etc/smail/config
Optional general smail configuration. This file can override compiled-in configuration.
/etc/smail/transports
Optional configuration for smail transports; i.e., configured methods of mail delivery. This file replaces the compiled-in transport configuration.
/etc/smail/directors
Optional configuration for smail directors, i.e., configured methods for resolving local addresses. This file replaces the compiled-in director configuration.
/etc/smail/routers
Optional configuration for smail routers, i.e., configured methods for resolving or routing to remote hosts. This file replaces the compiled-in router configuration.
/var/mail
The top of the spool directory hierarchy.
/var/mail/input
The directory containing messages to be processed and delivered.
/var/mail/msglog
A directory of transaction logs for individual messages.
/var/mail/lock
A directory used for input spool files.
/var/log/smail/logfile
A log of smail transactions.
/var/log/smail/paniclog
A log of serious configuration and/or system errors encountered by smail.
DEFAULT CONFIGURATION
The default internal directors configuration can be viewed by typing smail -oC /no-such-file -v -bP all. Note that this reports the values of all configuration variables using the default variable names (alias names are not shown). You should only adjust the values of those variables absolutely necessary to adjust for your particular system. Don’t simply copy this output to your new config file or you’ll make upgrading much harder.
SEE ALSO
smail(5), smaildrct(5), smailmeth(5), smailqual(5), smailrtrs(5), smailrtry(5), smailtrns(5), checkerr(8), smail(8).
Smail Administration and Installation Guide.
DARPA Internet Requests for Comments RFC 821, RFC 822, RFC 974, RFC 976, and RFC 1123.
Regular expression documentation for your host, perhaps in re_format(7), regex(3), ed(1), or grep(1).
BUGS
Colons cannot be included in the value of a list element. In most cases this is really a feature, such as with user and group names since a colon can never appear in such names anyway.
Database files cannot contain ’’#’’ in the left-hand field.
COPYRIGHT
Copyright
(C) 1987, 1988 Ronald S. Karr and Landon Curt Noll
Copyright (C) 1992 Ronald S. Karr
See a file COPYING, distributed with the source code, or type smail −bc, to view distribution rights and restrictions associated with this software.