Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
sendmail.cf(4)		   Kernel Interfaces Manual		sendmail.cf(4)

NAME
       sendmail.cf - Contains the sendmail configuration file data

SYNOPSIS
       /var/adm/sendmail/sendmail.cf

DESCRIPTION
       The  sendmail.cf	 file contains configuration information for the send-
       mail daemon. For	further	information on sendmail, see  the  sendmail(8)
       reference  page,	 the  sendmail	book  by O'Reilly & Associates,	or the
       Sendmail	Installation and Operation Guide. The latter is	 available  on
       the Documentation CD-ROM.

       The  sendmail.cf	 configuration	file  consists	of a series of control
       lines, each of which begins with	a single character  that  defines  how
       the  rest  of  the line is used.	 Lines beginning with a	space or a tab
       are continuation	lines.	Blank lines and	lines beginning	with a # (num-
       ber sign) are comments.	The control line can be	used for the following
       functions: Defining macros and classes for use within the configuration
       file Defining message precedence	for mail delivery Defining administra-
       tive IDs	to override the	sender's  address  Defining  message  headings
       Defining	the mail daemon	to use Defining	the syntax version used	within
       the  configuration  file	 Defining  rules and rule sets Setting options
       used by the sendmail command

   Defining Syntax Version (V Control Line)
       To specify the syntax version used  by  the  sendmail.cf	 configuration
       file,  use  Vn[vendorcode], where n is an integer specifying the	syntax
       version.	If n is	omitted, the original level 0 is assumed.  An optional
       vendor code can follow the level. The  files  supplied  by  Compaq  use
       "V2/DIGITAL" to specify the syntax version.

       Tru64  UNIX  provides tools to help you create a	reasonable sendmail.cf
       file.  See the mailconfig(8) and	the mailsetup(8) reference  pages  for
       further information.

   Defining Rules and Rule Sets	(R Control Line	and S Control Line)
       Most  of	 the  sendmail.cf file consists	of rules (R Control lines) and
       rule sets.  A rule set is a group of rules, prefixed by	an  S  control
       line.  For  example, S3 is rule set 3, while S99	is referred to as rule
       set 99.

       While a rule set	must start with	an S control line, there is no obvious
       "end-of-ruleset"	marker.	 All rules following an	 S  control  line  are
       considered  to  be part of that rule until either a new S control line,
       or the end of the file are encountered.

   Defining Macros and Classes (D Control Line and C Control Line)
       Macros and classes in the sendmail.cf  configuration  file  are	inter-
       preted  by the sendmail daemon.	 A macro is a symbol that represents a
       value or	string,	for example, or	an Internet address.  A	macro  is  de-
       fined  by a D control line in the sendmail.cf file.  Macros are not ex-
       panded until the	sendmail daemon	loads the rule sets when it starts up.
       The sendmail.cf file contains system-defined macros and required	macros
       that you	must define.

       A class is a symbol that	represents a set of one	or more	words, for ex-
       ample, or a filename.  Classes are used in pattern  matching  when  the
       sendmail	 daemon	 is parsing addresses.	You can	create a class using a
       list or you can create a	class using a file.

       The following letters introduce configuration file control  lines  that
       define  macros  and  classes  to	 set up	the sendmail daemon: Defines a
       macro and assigns a value to it.	 If a second DMacroValue  defines  the
       same  macro,  the second	definition replaces the	first definition.  The
       macro can be a single character or a word in  braces  {}.   For	single
       character  macros, you must use only uppercase letters.	Similarly, for
       longer macros, the first	character must be an uppercase letter.	Single
       character macros	that are lower case letters or special symbols are re-
       served for use by sendmail, as are words	beginning with	a  lower  case
       letter  or  punctuation character.  Defines Class to be a class and as-
       signs a word or group of	words (String) to  it.	 If  a	second	CClass
       String  defines	the same symbol, the String from the second definition
       is added	to the String from the first definition.  No words are deleted
       from the	class definition.  Class specifiers may	be any of  the	upper-
       case  letters from the ASCII character set.  Lowercase letters and spe-
       cial characters are reserved for	system use.  Defines symbol  Class  to
       be  a  class  and assigns a word	or group of words listed in a separate
       file to the symbol.  You	can specify an optional	 scanf	format	speci-
       fier.   Class  specifiers  may be any of	the uppercase letters from the
       ASCII character set.  Lowercase letters and special characters are  re-
       served for system use.

       To use a	macro or class in a control line, put a	$ (dollar sign)	before
       its  name.  For example,	if the name of the macro is x, use $x when us-
       ing that	macro in a control line. Without the preceding $, the	daemon
       interprets  x as	only the letter	"x".  The format for specifying	condi-
       tional expressions is as	follows: $?Macro Text1 $| Text2	$.

       In this format, the symbols have	the following meaning: If.  The	 macro
       being  tested.	The pattern to be used if $x is	defined.  Else.	 (This
       symbol is not required.)	 The pattern to	be used	if $Macro is  not  de-
       fined.  Specifies the end of the	conditional expression.

       Do  not	use  any  of the characters defined as tokens (by the required
       macro o)	when defining a	word in	a class.  The sendmail daemon may  not
       be able to read the definition correctly.

   Defining Message Precedence (P Control Line)
       The  sendmail.cf	configuration file also	contains lines to define mail-
       queue precedence	for messages that contain a Precedence:	 field.	  Nor-
       mally,  you do not need to change the values in the default sendmail.cf
       configuration file.

       The name	defined	and the	numerical value	 assigned  are	based  on  the
       needs of	the network. Higher numbers have higher	priority; numbers less
       than  0 (zero) indicate that error messages will	not be returned	to the
       sender of these messages. The precedence	value  is  0  (zero)  for  any
       precedence  name	not defined in this file.  For example,	the configura-
       tion file may contain the following entries:  Pfirst-class=0  Pspecial-
       delivery=100 Pbulk=-60 Pjunk=-100

       These  entries set special-delivery as the highest priority message and
       junk as the lowest priority.

   Defining Administrative IDs (T Control Line)
       Administrative IDs can override the sender address using	the -f flag to
       the sendmail command.  The sendmail.cf configuration file defines these
       IDs with	the T control line.  For example, the configuration  file  may
       contain the following entries: Troot Tdaemon Tuucp

       These  entries  define IDs root,	daemon,	and uucp as administrative IDs
       for the sendmail	command. Alternatively,	these IDs could	have been  de-
       fined using only	one T control line: Troot daemon uucp network

   Defining Message Headings (H	Control	Line)
       H  control  lines define	the format of Header lines. If the format of a
       header line is defined by an H control line, sendmail will reformat the
       header according	to this	format.

       The sendmail command allows the user to configure whether a  header  is
       optional	 or  not depending on the mailer (M control lines) selected to
       handle this message.  If	the selected mailer has	the MailerFlag defined
       in its F= section, then the header is added.  For instance, most	 mail-
       ers have	the F=D	flag set; this enables the Date: header	to be included
       in the message.

       The  format of the H control line is as follows:	H[?MailerFlags?]Field-
       Name: format

       In this format, the variable parameters	have  the  following  meaning:
       This field is optional.	If you supply it, surround it with ? (question
       marks).	This field contains mailer flags that determine	whether	this H
       line is used.  If the mailer being used requires	the information	speci-
       fied by the mailer flag,	then this H control line is included when for-
       matting	the heading.  Otherwise, this H	control	line is	ignored.  This
       field contains the text that is displayed as the	name of	the  field  in
       the  heading  information.  The actual text used	is a matter of choice.
       Some typical field names	include	From:,	To:,  and  Rcvd	 From:.	  This
       field  defines  the  information	 that is displayed following the field
       name.  It usually uses a	sendmail macro to specify the information.

       The sendmail command does not do	any special processing for the	header
       mailer  flags;  their  use is purely by convention.  See	the section on
       Specifying Mailer Flags for more	detail.

       The following is	a list of parts	that the sendmail daemon expects  mail
       to  have. Note that these parts must appear in the same order as	listed
       here.  An operating system From line (defined by	the  five  characters:
       F, r, o,	m, and space) Mail header lines	that begin with	a keyword fol-
       lowed  by  a  colon, such as From: or To: An empty line The body	of the
       message

       The sendmail daemon detects the operating system	From line by  checking
       the  first five characters of the first line.  After that, header lines
       are processed.  When it detects a line that does	not begin with a  key-
       word  followed by a colon, it ends header line processing.  If an empty
       line occurs at that point, it is	ignored.

       Mailer flags or the mailer itself  determine  if	 an  operating	system
       From:  line  is generated.  Other header	lines are present (or not) de-
       pending on those	defined	in  the	 sendmail  configuration  file,	 those
       specified by mailer flags, and those present in incoming	mail.

       Note that the binmail daemon generates a	From: line on all local	deliv-
       eries.  The sendmail mailer flags do not	allow you to alter this.

       The  following  example	lines  are  from  a  typical sendmail.cf file:
       H?P?Return-Path:	<$g>

       This line defines a field called	Return-Path: that  displays  the  con-
       tents  of  the $g macro (sender address relative	to the receiver).  The
       ?P? portion indicates that this line is only used if  the  mailer  uses
       the  P  flag  (the  mailer  requires  a	Return-Path line).  HReceived:
       $?sfrom $s $.by $j ($v/$Z)
	       id $i; $b

       This line defines a field called	Received.   This  field	 displays  the
       following  information:	If  an s macro is defined (sender's hostname),
       displays	the text from followed by the content of the $s	 macro.	  Dis-
       plays  the  text	 by  followed by the content of	the $j macro (official
       name for	this site).  Displays the version of the sendmail daemon  ($v)
       and the version of the sendmail.cf file ($Z) set	off by parentheses and
       separated  by a slash.  Displays	the text id followed by	the content of
       the $i macro (mail-queue	ID of the message) and a ; (semicolon).	  Dis-
       plays the current date.

   Defining a Mailer (M	Control	Line)
       A  mailer  is  a	 daemon	that delivers mail either locally or over some
       type of network to another system. Use control lines  that  begin  with
       the  letter M to	define the characteristics of a	mailer daemon that in-
       terfaces	with sendmail.

       Note that defining a mail daemon	entry (mailer) in the sendmail.cf con-
       figuration file does not	ensure that it will be used.   You  must  also
       define  rewrite	rules  to  ensure  the address format resolves to that
       mailer.

       The format of a mailer definition control line is as follows: M=Mailer-
       Name, P=Path, F=Flags, S=Integers,E=EndOfLine, A=String,	M=Limit

       The following paragraphs	and examples describe the parameters  for  the
       mailer definition.

       Specifying a Mailer Name	(MMailerName)

       Each  mailer  must  have	 an internal name.  The	name can be any	string
       that you	choose,	except that the	names local and	prog are reserved  for
       the  mailers for	local delivery and delivery to daemons.	 You must pro-
       vide definitions	for these two mailers in the sendmail.cf configuration
       file if they are	not already there (the default configuration file con-
       tains these definitions). To define the mailer name, put	the name imme-
       diately after the M in the mailer-definition control line: MMailerName

       For example, the	following segment introduces the definition line for a
       mailer called lan: Mlan

       Defining	the Path to the	Mailer Daemon (P=Path)

       Specify the location of the mailer daemon  with	the  P	field  in  the
       mailer definition.  This	field has the format: P=Path

       The  Path  defines  the full pathname of	the mailer daemon on the local
       system.	If the mailer daemon is	the sendmail daemon version of	Simple
       Mail  Transfer  Protocol	 (SMTP)	 (daemon), use the string [IPC]	as the
       path.  For example, the following two mailer-definition	fragments  de-
       fine  a	local  mailer  at /usr/bin/mail	and another mailer that	is the
       sendmail	daemon implementation of SMTP: Mlocal, P=/usr/bin/mail,	 Mlan,
       P=[IPC],

       Specifying Mailer Flags (F=Flags)

       Mailer  flags  provide further information to the sendmail daemon about
       the mailer daemon being described. Specify  mailer  flags  with	the  F
       field in	the mailer-definition.	This field has the format: F=Flags

       This  field  defines the	meaning	for the	flags that the sendmail	daemon
       recognizes.  For	example, the following mailer-definition fragment uses
       the -rlsm flags to indicate that	the mailer requires a -r flag,	deliv-
       ers locally, needs quotation marks stripped from	addresses, and can de-
       liver to	more than one user at a	time: Mlocal, P=/usr/bin/mail, F=rlsm,

       Flags  available	 for the F=Flags field are as follows: If this flag is
       set, this mailer	inspects the address of	 any  incoming	mail  that  it
       processes  for  the  presence  of an @ (at sign).  If it	finds an @, it
       saves the @ and the remainder of	the address to be used when  rewriting
       addresses in header lines in the	message	(when mail is forwarded	to any
       mailer).

	      The  receiving  mailer  adds the saved portion of	the address to
	      any address that does not	contain	an @, after  the  address  has
	      been  processed  by  rule	set 3 (this processing does not	depend
	      upon a mailer flag; it always occurs).  Do not use this flag for
	      general operation, since it does not interpret  complex,	route-
	      based addresses properly.	 The mailer defined in this mailer-de-
	      finition control line needs a Date: or Resent-Date: header line.
	      The mailer defined in this mailer-definition control line	is ex-
	      pensive  to  connect  to.	 If the	C configuration	option is set,
	      mail for this mailer is always placed in the queue.   This  flag
	      causes  the mailer in the	definition control line	to allow lines
	      beginning	with the exact six characters  >,  F,  r,  o,  m,  and
	      space  to	appear in the text of a	message.  Normally From: lines
	      are treated as header lines.  The	E flag allows operating	system
	      From: lines (or any other	text lines beginning  with  those  six
	      characters)  to  appear in the body of the message without being
	      interpreted as the start of a new	message.  The  mailer  in  the
	      mailer-definition	control	line needs a -f	flag.  The flag	is in-
	      serted into the call for the mailer followed by the expansion of
	      the  $g  macro (sender's address relative	to the receiver).  The
	      mailer in	the mailer-definition control line needs  a  From:  or
	      Resent-From:  header  line. This header is optional depending on
	      the mailer (M control lines) selected to	handle	this  message.
	      Preserves	 uppercase  letters in hostnames for the mailer	in the
	      mailer-definition	control	line.  The mailer in the mailer-defin-
	      ition control line uses Simple Mail Transfer Protocol (SMTP)  to
	      communicate  with	 another SMTP server that is part of the send-
	      mail daemon.  When communicating with another  sendmail  daemon,
	      the  mailer  can	use features that are not part of the standard
	      SMTP protocol. This option  is  not  required,  but  causes  the
	      transmission  to	operate	 more efficiently than without the op-
	      tion.  The mailer	in the mailer-definition control line  is  lo-
	      cal; final delivery will be performed.  The L flag enforces SMTP
	      line  lengths.  The mailer in the	mailer-definition control line
	      can be sent to multiple users on the same	host in	 one  transac-
	      tion. The	$u macro contains the recipient's username.  When a $u
	      macro  occurs  in	the String part	of the mailer-definition, (for
	      example A=mail -r	$g -d $u) and the m flag is  set,  $u  is  ex-
	      panded  to  become  a list of all	the recipients.	 The mailer in
	      the mailer-definition control line needs	a  Message-Id  header.
	      This  header  is	optional  depending  on	 the mailer (M control
	      lines) selected to handle	 this  message.	  The  mailer  in  the
	      mailer-definition	control	line needs a Return-Path: header line.
	      This  header  is	optional  depending  on	 the mailer (M control
	      lines) selected to handle	 this  message.	  The  mailer  in  the
	      mailer-definition	 control  line needs a Full-name: header. This
	      header is	optional depending on the mailer (M control lines) se-
	      lected to	handle this message. For versions prior	to Version  8,
	      this  flag also enables the MULT option required by the mail11v3
	      program to handle	multiple recipients.

       Define Sender Rewriting Rules (S=Envelope/Header)
       Define Recipient	Rewriting Rules	(R=Envelope/Header)

       After a mailer has been selected	by the S0 ruleset,  sendmail  performs
       additional processing on	the addresses.	Sender addresses are processed
       by  the	rule(s)	specified by the S= section, while recipient addresses
       are processed by	the rule(s) specified by the R=	section.

       The sendmail program allows you to specify either a  single  rule  (for
       example,	 S=14),	 or split rewriting rules.  (For example, S=14/24). If
       split rules are specified, envelope  addresses  are  processed  by  the
       first  rule  (for example, 14), while header addresses are processed by
       the later rule (for example, 24).

       Configuration File Revision Level Option	(DZNumber)

       The configuration file revision level macro, Z, helps you track changes
       that you	make to	the sendmail configuration file.  Each time  that  you
       make  a	change	to  the	 sendmail  configuration file, you should also
       change the value	of this	macro.	Choose any format for the number  that
       you  define.   For  example,  if	 the sendmail configuration file is at
       level 3.1, the following	entry appears in  the  sendmail	 configuration
       file: DZ3.1

       A text string can also be used for this macro: DZversion_one

       Defining	a Map (K Key File Declaration)

       You can define a	special	map function with the following	line: Kmapname
       mapclass	arguments The fields in	the definition have the	following pur-
       poses:  Indicates  the  handle  of this map, which is referenced	in the
       rewriting rules Indicates the type of the map (for example, dbm,	ldapx,
       text, etc.  These are compiled into sendmail.)  Contains	 one  or  more
       arguments depending on the type of the map (for example,	a single argu-
       ment naming the file that contains the map)

       Once  defined,  map  functions  are  called  with the following syntax:
       $(mapname key $@	arguments $: default $)	The $@ arguments  and  $:  de-
       fault  fields  are optional, and	the $@ arguments field can appear more
       than once.

       Sendmail	passes the specified key and arguments to the appropriate map-
       ping function.  If the function returns a value,	the value replaces the
       input.  If the function does not	return a value,	and a default is spec-
       ified, the default replaces the input.  Otherwise,  the	input  remains
       unchanged.

       For  example,  the following rule looks up the UUCP name	in a (user-de-
       fined) UUCP map:	R$-!$+	      $: $(uucp	$1 $@ $2 $: %1 @ %0  .UUCP  $)
       If  the	name  is  not found, sendmail turns it into the	following: re-
       search	   %1@%0.ATT.COM

RELATED	INFORMATION
       Commands:  mailconfig(8),  mailsetup(8),	 mail_manual_setup(7),	 send-
       mail.m4(8), sendmail(8) delim off

								sendmail.cf(4)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=sendmail.cf&sektion=4&manpath=OSF1+V5.1%2falpha>

home | help