README
上传用户:xu_441
上传日期:2007-01-04
资源大小:1640k
文件大小:114k
源码类别:

Email客户端

开发平台:

Unix_Linux

  1. SENDMAIL CONFIGURATION FILES
  2. This document describes the sendmail configuration files.  This package
  3. requires a post-V7 version of m4; if you are running the 4.2bsd, SysV.2, or
  4. 7th Edition version.  SunOS's /usr/5bin/m4 or BSD-Net/2's m4 both work.
  5. GNU m4 version 1.1 or later also works.  Unfortunately, the M4 on BSDI 1.0
  6. doesn't work -- you'll have to use a Net/2 or GNU version.  GNU m4 is
  7. available from ftp://ftp.gnu.org/pub/gnu/m4-1.4.tar.gz (check for the
  8. latset version).  EXCEPTIONS: DEC's m4 on Digital UNIX 4.x is broken (3.x
  9. is fine).  Use GNU m4 on this platform.
  10. To get started, you may want to look at tcpproto.mc (for TCP-only sites),
  11. uucpproto.mc (for UUCP-only sites), and clientproto.mc (for clusters of
  12. clients using a single mail host).  Others are versions previously used at
  13. Berkeley.  For example, ucbvax has gone away, but ucbvax.mc demonstrates
  14. some interesting techniques.
  15. *******************************************************************
  16. ***  BE SURE YOU CUSTOMIZE THESE FILES!  They have some ***
  17. ***  Berkeley-specific assumptions built in, such as the name ***
  18. ***  of their UUCP-relay.  You'll want to create your own ***
  19. ***  domain description, and use that in place of ***
  20. ***  domain/Berkeley.EDU.m4. ***
  21. *******************************************************************
  22. +--------------------------+
  23. | INTRODUCTION AND EXAMPLE |
  24. +--------------------------+
  25. Configuration files are contained in the subdirectory "cf", with a
  26. suffix ".mc".  They must be run through "m4" to produce a ".cf" file.
  27. You must pre-load "cf.m4":
  28. m4 ${CFDIR}/m4/cf.m4 config.mc > config.cf
  29. Alternatively, you can simply:
  30. cd ${CFDIR}/cf
  31. ./Build config.cf
  32. where ${CFDIR} is the root of the cf directory and config.mc is the
  33. name of your configuration file.  If you are running a version of M4
  34. that understands the __file__ builtin (versions of GNU m4 >= 0.75 do
  35. this, but the versions distributed with 4.4BSD and derivatives do not)
  36. or the -I flag (ditto), then ${CFDIR} can be in an arbitrary directory.
  37. For "traditional" versions, ${CFDIR} ***MUST*** be "..", or you MUST
  38. use -D_CF_DIR_=/path/to/cf/dir/ -- note the trailing slash!  For example:
  39. m4 -D_CF_DIR_=${CFDIR}/ ${CFDIR}/m4/cf.m4 config.mc > config.cf
  40. Let's examine a typical .mc file:
  41. divert(-1)
  42. #
  43. # Copyright (c) 1998, 1999 Sendmail, Inc. and its suppliers.
  44. # All rights reserved.
  45. # Copyright (c) 1983 Eric P. Allman.  All rights reserved.
  46. # Copyright (c) 1988, 1993
  47. # The Regents of the University of California.  All rights reserved.
  48. #
  49. # By using this file, you agree to the terms and conditions set
  50. # forth in the LICENSE file which can be found at the top level of
  51. # the sendmail distribution.
  52. #
  53. #
  54. #  This is a Berkeley-specific configuration file for HP-UX 9.x.
  55. #  It applies only to the Computer Science Division at Berkeley,
  56. #  and should not be used elsewhere.   It is provided on the sendmail
  57. #  distribution as a sample only.  To create your own configuration
  58. #  file, create an appropriate domain file in ../domain, change the
  59. #  `DOMAIN' macro below to reference that file, and copy the result
  60. #  to a name of your own choosing.
  61. #
  62. divert(0)
  63. The divert(-1) will delete the crud in the resulting output file.
  64. The copyright notice can be replaced by whatever your lawyers require;
  65. our lawyers require the one that is included in these files.  A copyleft
  66. is a copyright by another name.  The divert(0) restores regular output.
  67. VERSIONID(`<SCCS or RCS version id>')
  68. VERSIONID is a macro that stuffs the version information into the
  69. resulting file.  You could use SCCS, RCS, CVS, something else, or
  70. omit it completely.  This is not the same as the version id included
  71. in SMTP greeting messages -- this is defined in m4/version.m4.
  72. OSTYPE(`hpux9')dnl
  73. You must specify an OSTYPE to properly configure things such as the
  74. pathname of the help and status files, the flags needed for the local
  75. mailer, and other important things.  If you omit it, you will get an
  76. error when you try to build the configuration.  Look at the ostype
  77. directory for the list of known operating system types.
  78. DOMAIN(`CS.Berkeley.EDU')dnl
  79. This example is specific to the Computer Science Division at Berkeley.
  80. You can use "DOMAIN(`generic')" to get a sufficiently bland definition
  81. that may well work for you, or you can create a customized domain
  82. definition appropriate for your environment.
  83. MAILER(`local')
  84. MAILER(`smtp')
  85. These describe the mailers used at the default CS site.  The
  86. local mailer is always included automatically.  Beware: MAILER
  87. declarations should always be at the end of the configuration file,
  88. and MAILER(`smtp') should always precede MAILER(`procmail'), and
  89. MAILER(`uucp').  The general rules are that the order should be:
  90. VERSIONID
  91. OSTYPE
  92. DOMAIN
  93. FEATURE
  94. local macro definitions
  95. MAILER
  96. LOCAL_RULE_*
  97. LOCAL_RULESETS
  98. There are a few exceptions to this rule.  Local macro definitions which
  99. influence a FEATURE() should be done before that feature.  For example,
  100. a define(`PROCMAIL_MAILER_PATH', ...) should be done before
  101. FEATURE(`local_procmail').
  102. +----------------------------+
  103. | A BRIEF INTRODUCTION TO M4 |
  104. +----------------------------+
  105. Sendmail uses the M4 macro processor to ``compile'' the configuration
  106. files.  The most important thing to know is that M4 is stream-based,
  107. that is, it doesn't understand about lines.  For this reason, in some
  108. places you may see the word ``dnl'', which stands for ``delete
  109. through newline''; essentially, it deletes all characters starting
  110. at the ``dnl'' up to and including the next newline character.  In
  111. most cases sendmail uses this only to avoid lots of unnecessary
  112. blank lines in the output.
  113. Other important directives are define(A, B) which defines the macro
  114. ``A'' to have value ``B''.  Macros are expanded as they are read, so
  115. one normally quotes both values to prevent expansion.  For example,
  116. define(`SMART_HOST', `smart.foo.com')
  117. One word of warning:  M4 macros are expanded even in lines that appear
  118. to be comments.  For example, if you have
  119. # See FEATURE(`foo') above
  120. it will not do what you expect, because the FEATURE(`foo') will be
  121. expanded.  This also applies to
  122. # And then define the $X macro to be the return address
  123. because ``define'' is an M4 keyword.  If you want to use them, surround
  124. them with directed quotes, `like this'.
  125. +----------------+
  126. | FILE LOCATIONS |
  127. +----------------+
  128. sendmail 8.9 has introduced a new configuration directory for sendmail
  129. related files, /etc/mail.  The new files available for sendmail 8.9 --
  130. the class 'R' /etc/mail/relay-domains and the access database
  131. /etc/mail/access -- take advantage of this new directory.  Beginning with
  132. 8.10, all files will use this directory by default (some options may be
  133. set by OSTYPE() files).  This new directory should help to restore
  134. uniformity to sendmail's file locations.
  135. Below is a table of some of the common changes:
  136. Old filename New filename
  137. ------------ ------------
  138. /etc/bitdomain /etc/mail/bitdomain
  139. /etc/domaintable /etc/mail/domaintable
  140. /etc/genericstable /etc/mail/genericstable
  141. /etc/uudomain /etc/mail/uudomain
  142. /etc/virtusertable /etc/mail/virtusertable
  143. /etc/userdb /etc/mail/userdb
  144. /etc/aliases /etc/mail/aliases
  145. /etc/sendmail/aliases /etc/mail/aliases
  146. /etc/ucbmail/aliases /etc/mail/aliases
  147. /usr/adm/sendmail/aliases /etc/mail/aliases
  148. /usr/lib/aliases /etc/mail/aliases
  149. /usr/lib/mail/aliases /etc/mail/aliases
  150. /usr/ucblib/aliases /etc/mail/aliases
  151. /etc/sendmail.cw /etc/mail/local-host-names
  152. /etc/mail/sendmail.cw /etc/mail/local-host-names
  153. /etc/sendmail/sendmail.cw /etc/mail/local-host-names
  154. /etc/sendmail.ct /etc/mail/trusted-users
  155. /etc/sendmail.oE /etc/mail/error-header
  156. /etc/sendmail.hf /etc/mail/helpfile
  157. /etc/mail/sendmail.hf /etc/mail/helpfile
  158. /usr/ucblib/sendmail.hf /etc/mail/helpfile
  159. /etc/ucbmail/sendmail.hf /etc/mail/helpfile
  160. /usr/lib/sendmail.hf /etc/mail/helpfile
  161. /usr/share/lib/sendmail.hf /etc/mail/helpfile
  162. /usr/share/misc/sendmail.hf /etc/mail/helpfile
  163. /share/misc/sendmail.hf /etc/mail/helpfile
  164. /etc/service.switch /etc/mail/service.switch
  165. /etc/sendmail.st /etc/mail/statistics
  166. /etc/mail/sendmail.st /etc/mail/statistics
  167. /etc/mailer/sendmail.st /etc/mail/statistics
  168. /etc/sendmail/sendmail.st /etc/mail/statistics
  169. /usr/lib/sendmail.st /etc/mail/statistics
  170. /usr/ucblib/sendmail.st /etc/mail/statistics
  171. Note that all of these paths actually use a new m4 macro MAIL_SETTINGS_DIR
  172. to create the pathnames.  The default value of this variable is
  173. `/etc/mail/'.  If you set this macro to a different value, you MUST include
  174. a trailing slash.
  175. +--------+
  176. | OSTYPE |
  177. +--------+
  178. You MUST define an operating system environment, or the configuration
  179. file build will puke.  There are several environments available; look
  180. at the "ostype" directory for the current list.  This macro changes
  181. things like the location of the alias file and queue directory.  Some
  182. of these files are identical to one another.
  183. It is IMPERATIVE that the OSTYPE occur before any MAILER definitions.
  184. In general, the OSTYPE macro should go immediately after any version
  185. information, and MAILER definitions should always go last.
  186. Operating system definitions are usually easy to write.  They may define
  187. the following variables (everything defaults, so an ostype file may be
  188. empty).  Unfortunately, the list of configuration-supported systems is
  189. not as broad as the list of source-supported systems, since many of
  190. the source contributors do not include corresponding ostype files.
  191. ALIAS_FILE [/etc/mail/aliases] The location of the text version
  192. of the alias file(s).  It can be a comma-separated
  193. list of names (but be sure you quote values with
  194. commas in them -- for example, use
  195. define(`ALIAS_FILE', `a,b')
  196. to get "a" and "b" both listed as alias files;
  197. otherwise the define() primitive only sees "a").
  198. HELP_FILE [/etc/mail/helpfile] The name of the file
  199. containing information printed in response to
  200. the SMTP HELP command.
  201. QUEUE_DIR [/var/spool/mqueue] The directory containing
  202. queue files.  To use multiple queues, supply 
  203. a value ending with an asterisk.  For 
  204. example, /var/spool/mqueue/q* will use all of the
  205. directories or symbolic links to directories
  206. beginning with 'q' in /var/spool/mqueue as queue
  207. directories.
  208. STATUS_FILE [/etc/mail/statistics] The file containing status
  209. information.
  210. LOCAL_MAILER_PATH [/bin/mail] The program used to deliver local mail.
  211. LOCAL_MAILER_FLAGS [Prmn9] The flags used by the local mailer.  The
  212. flags lsDFMAw5:/|@q are always included.
  213. LOCAL_MAILER_ARGS [mail -d $u] The arguments passed to deliver local
  214. mail.
  215. LOCAL_MAILER_MAX [undefined] If defined, the maximum size of local
  216. mail that you are willing to accept.
  217. LOCAL_MAILER_MAXMSGS [undefined] If defined, the maximum number of
  218. messages to deliver in a single connection.  Only
  219. useful for LMTP local mailers.
  220. LOCAL_MAILER_CHARSET [undefined] If defined, messages containing 8-bit data
  221. that ARRIVE from an address that resolves to the
  222. local mailer and which are converted to MIME will be
  223. labeled with this character set.
  224. LOCAL_MAILER_EOL [undefined] If defined, the string to use as the
  225. end of line for the local mailer.
  226. LOCAL_MAILER_DSN_DIAGNOSTIC_CODE
  227. [X-Unix] The DSN Diagnostic-Code value for the
  228. local mailer.  This should be changed with care.
  229. LOCAL_SHELL_PATH [/bin/sh] The shell used to deliver piped email.
  230. LOCAL_SHELL_FLAGS [eu9] The flags used by the shell mailer.  The
  231. flags lsDFM are always included.
  232. LOCAL_SHELL_ARGS [sh -c $u] The arguments passed to deliver "prog"
  233. mail.
  234. LOCAL_SHELL_DIR [$z:/] The directory search path in which the
  235. shell should run.
  236. USENET_MAILER_PATH [/usr/lib/news/inews] The name of the program
  237. used to submit news.
  238. USENET_MAILER_FLAGS [rsDFMmn] The mailer flags for the usenet mailer.
  239. USENET_MAILER_ARGS [-m -h -n] The command line arguments for the
  240. usenet mailer.
  241. USENET_MAILER_MAX [100000] The maximum size of messages that will
  242. be accepted by the usenet mailer.
  243. SMTP_MAILER_FLAGS [undefined] Flags added to SMTP mailer.  Default
  244. flags are `mDFMuX' for all SMTP-based mailers; the
  245. "esmtp" mailer adds `a'; "smtp8" adds `8'; and
  246. "dsmtp" adds `%'.
  247. RELAY_MAILER_FLAGS [undefined] Flags added to the relay mailer.  Default
  248. flags are `mDFMuX' for all SMTP-based mailers; the
  249. relay mailer adds `a8'.
  250. SMTP_MAILER_MAX [undefined] The maximum size of messages that will
  251. be transported using the smtp, smtp8, esmtp, or dsmtp
  252. mailers.
  253. SMTP_MAILER_MAXMSGS [undefined] If defined, the maximum number of
  254. messages to deliver in a single connection for the
  255. smtp, smtp8, esmtp, or dsmtp mailers.
  256. SMTP_MAILER_ARGS [IPC $h] The arguments passed to the smtp mailer.
  257. About the only reason you would want to change this
  258. would be to change the default port.
  259. ESMTP_MAILER_ARGS [IPC $h] The arguments passed to the esmtp mailer.
  260. SMTP8_MAILER_ARGS [IPC $h] The arguments passed to the smtp8 mailer.
  261. DSMTP_MAILER_ARGS [IPC $h] The arguments passed to the dsmtp mailer.
  262. RELAY_MAILER_ARGS [IPC $h] The arguments passed to the relay mailer.
  263. RELAY_MAILER_MAXMSGS [undefined] If defined, the maximum number of
  264. messages to deliver in a single connection for the
  265. relay mailer.
  266. SMTP_MAILER_CHARSET [undefined] If defined, messages containing 8-bit data
  267. that ARRIVE from an address that resolves to one of
  268. the SMTP mailers and which are converted to MIME will
  269. be labeled with this character set.
  270. UUCP_MAILER_PATH [/usr/bin/uux] The program used to send UUCP mail.
  271. UUCP_MAILER_FLAGS [undefined] Flags added to UUCP mailer.  Default
  272. flags are `DFMhuU' (and `m' for uucp-new mailer,
  273. minus `U' for uucp-dom mailer).
  274. UUCP_MAILER_ARGS [uux - -r -z -a$g -gC $h!rmail ($u)] The arguments
  275. passed to the UUCP mailer.
  276. UUCP_MAILER_MAX [100000] The maximum size message accepted for
  277. transmission by the UUCP mailers.
  278. UUCP_MAILER_CHARSET [undefined] If defined, messages containing 8-bit data
  279. that ARRIVE from an address that resolves to one of
  280. the UUCP mailers and which are converted to MIME will
  281. be labeled with this character set.
  282. FAX_MAILER_PATH [/usr/local/lib/fax/mailfax] The program used to
  283. submit FAX messages.
  284. FAX_MAILER_ARGS [mailfax $u $h $f] The arguments passed to the FAX
  285. mailer.
  286. FAX_MAILER_MAX [100000] The maximum size message accepted for
  287. transmission by FAX.
  288. POP_MAILER_PATH [/usr/lib/mh/spop] The pathname of the POP mailer.
  289. POP_MAILER_FLAGS [Penu] Flags added to POP mailer.  Flags lsDFMq
  290. are always added.
  291. POP_MAILER_ARGS [pop $u] The arguments passed to the POP mailer.
  292. PROCMAIL_MAILER_PATH [/usr/local/bin/procmail] The path to the procmail
  293. program.  This is also used by
  294. FEATURE(`local_procmail').
  295. PROCMAIL_MAILER_FLAGS [SPhnu9] Flags added to Procmail mailer.  Flags
  296. DFM are always set.  This is NOT used by
  297. FEATURE(`local_procmail'); tweak LOCAL_MAILER_FLAGS
  298. instead.
  299. PROCMAIL_MAILER_ARGS [procmail -Y -m $h $f $u] The arguments passed to
  300. the Procmail mailer.  This is NOT used by
  301. FEATURE(`local_procmail'); tweak LOCAL_MAILER_ARGS
  302. instead.
  303. PROCMAIL_MAILER_MAX [undefined] If set, the maximum size message that
  304. will be accepted by the procmail mailer.
  305. MAIL11_MAILER_PATH [/usr/etc/mail11] The path to the mail11 mailer.
  306. MAIL11_MAILER_FLAGS [nsFx] Flags for the mail11 mailer.
  307. MAIL11_MAILER_ARGS [mail11 $g $x $h $u] Arguments passed to the mail11
  308. mailer.
  309. PH_MAILER_PATH [/usr/local/etc/phquery] The path to the phquery
  310. program.
  311. PH_MAILER_FLAGS [ehmu] Flags for the phquery mailer.  Flags nrDFM
  312. are always set.
  313. PH_MAILER_ARGS [phquery -- $u] -- arguments to the phquery mailer.
  314. CYRUS_MAILER_FLAGS [Ah5@/:|] The flags used by the cyrus mailer.  The
  315. flags lsDFMnPq are always included.
  316. CYRUS_MAILER_PATH [/usr/cyrus/bin/deliver] The program used to deliver
  317. cyrus mail.
  318. CYRUS_MAILER_ARGS [deliver -e -m $h -- $u] The arguments passed
  319. to deliver cyrus mail.
  320. CYRUS_MAILER_MAX [undefined] If set, the maximum size message that
  321. will be accepted by the cyrus mailer.
  322. CYRUS_MAILER_USER [cyrus:mail] The user and group to become when
  323. running the cyrus mailer.
  324. CYRUS_BB_MAILER_FLAGS [u] The flags used by the cyrusbb mailer.
  325. The flags lsDFMnP are always included.
  326. CYRUS_BB_MAILER_ARGS [deliver -e -m $u] The arguments passed
  327. to deliver cyrusbb mail.
  328. confEBINDIR [/usr/libexec] The directory for executables.
  329. Currently used for FEATURE(`local_lmtp') and
  330. FEATURE(`smrsh').
  331. QPAGE_MAILER_FLAGS [mDFMs] The flags used by the qpage mailer.
  332. QPAGE_MAILER_PATH [/usr/local/bin/qpage] The program used to deliver
  333. qpage mail.
  334. QPAGE_MAILER_ARGS [qpage -l0 -m -P$u] The arguments passed
  335. to deliver qpage mail.
  336. QPAGE_MAILER_MAX [4096] If set, the maximum size message that
  337. will be accepted by the qpage mailer.
  338. Note: to tweak Name_MAILER_FLAGS use the macro MODIFY_MAILER_FLAGS:
  339. MODIFY_MAILER_FLAGS(`Name', `change') where Name is the first part of
  340. the macro Name_MAILER_FLAGS and change can be: flags that should
  341. be used directly (thus overriding the default value), or if it
  342. starts with `+' (`-') then those flags are added to (removed from)
  343. the default value.  Example:
  344. MODIFY_MAILER_FLAGS(`LOCAL', `+e')
  345. will add the flag `e' to LOCAL_MAILER_FLAGS.
  346. WARNING: The FEATUREs local_lmtp and local_procmail set LOCAL_MAILER_FLAGS
  347. unconditionally, i.e., without respecting any definitions in an
  348. OSTYPE setting.
  349. +---------+
  350. | DOMAINS |
  351. +---------+
  352. You will probably want to collect domain-dependent defines into one
  353. file, referenced by the DOMAIN macro.  For example, the Berkeley
  354. domain file includes definitions for several internal distinguished
  355. hosts:
  356. UUCP_RELAY The host that will accept UUCP-addressed email.
  357. If not defined, all UUCP sites must be directly
  358. connected.
  359. BITNET_RELAY The host that will accept BITNET-addressed email.
  360. If not defined, the .BITNET pseudo-domain won't work.
  361. DECNET_RELAY The host that will accept DECNET-addressed email.
  362. If not defined, the .DECNET pseudo-domain and addresses
  363. of the form node::user will not work.
  364. FAX_RELAY The host that will accept mail to the .FAX pseudo-domain.
  365. The "fax" mailer overrides this value.
  366. LOCAL_RELAY DEPRECATED.  The site that will handle unqualified
  367. names -- that is, names with out an @domain extension.
  368. If not set, they are assumed to belong on this machine.
  369. This allows you to have a central site to store a
  370. company- or department-wide alias database.  This
  371. only works at small sites, and only with some user
  372. agents.
  373. LUSER_RELAY The site that will handle lusers -- that is, apparently
  374. local names that aren't local accounts or aliases.
  375. Any of these can be either ``mailer:hostname'' (in which case the
  376. mailer is the internal mailer name, such as ``uucp-new'' and the hostname
  377. is the name of the host as appropriate for that mailer) or just a
  378. ``hostname'', in which case a default mailer type (usually ``relay'',
  379. a variant on SMTP) is used.  WARNING: if you have a wildcard MX
  380. record matching your domain, you probably want to define these to
  381. have a trailing dot so that you won't get the mail diverted back
  382. to yourself.
  383. The domain file can also be used to define a domain name, if needed
  384. (using "DD<domain>") and set certain site-wide features.  If all hosts
  385. at your site masquerade behind one email name, you could also use
  386. MASQUERADE_AS here.
  387. You do not have to define a domain -- in particular, if you are a
  388. single machine sitting off somewhere, it is probably more work than
  389. it's worth.  This is just a mechanism for combining "domain dependent
  390. knowledge" into one place.
  391. +---------+
  392. | MAILERS |
  393. +---------+
  394. There are fewer mailers supported in this version than the previous
  395. version, owing mostly to a simpler world.  As a general rule, put the
  396. MAILER definitions last in your .mc file, and always put MAILER(`smtp')
  397. before MAILER(`uucp') and MAILER(`procmail') -- several features and
  398. definitions will modify the definition of mailers, and the smtp mailer
  399. modifies the UUCP mailer.  Moreover, MAILER(`cyrus'), MAILER(`pop'),
  400. MAILER(`phquery'), and MAILER(`usenet') must be defined after
  401. MAILER(`local').
  402. local The local and prog mailers.  You will almost always
  403. need these; the only exception is if you relay ALL
  404. your mail to another site.  This mailer is included
  405. automatically.
  406. smtp The Simple Mail Transport Protocol mailer.  This does
  407. not hide hosts behind a gateway or another other
  408. such hack; it assumes a world where everyone is
  409. running the name server.  This file actually defines
  410. five mailers: "smtp" for regular (old-style) SMTP to
  411. other servers, "esmtp" for extended SMTP to other
  412. servers, "smtp8" to do SMTP to other servers without
  413. converting 8-bit data to MIME (essentially, this is
  414. your statement that you know the other end is 8-bit
  415. clean even if it doesn't say so), "dsmtp" to do on
  416. demand delivery, and "relay" for transmission to the
  417. RELAY_HOST, LUSER_RELAY, or MAIL_HUB.
  418. uucp The Unix-to-Unix Copy Program mailer.  Actually, this
  419. defines two mailers, "uucp-old" (a.k.a. "uucp") and
  420. "uucp-new" (a.k.a. "suucp").  The latter is for when you
  421. know that the UUCP mailer at the other end can handle
  422. multiple recipients in one transfer.  If the smtp mailer
  423. is also included in your configuration, two other mailers
  424. ("uucp-dom" and "uucp-uudom") are also defined [warning:
  425. you MUST specify MAILER(smtp) before MAILER(uucp)].  When you
  426. include the uucp mailer, sendmail looks for all names in
  427. the $=U class and sends them to the uucp-old mailer; all
  428. names in the $=Y class are sent to uucp-new; and all
  429. names in the $=Z class are sent to uucp-uudom.  Note that
  430. this is a function of what version of rmail runs on
  431. the receiving end, and hence may be out of your control.
  432. See the section below describing UUCP mailers in more
  433. detail.
  434. usenet Usenet (network news) delivery.  If this is specified,
  435. an extra rule is added to ruleset 0 that forwards all
  436. local email for users named ``group.usenet'' to the
  437. ``inews'' program.  Note that this works for all groups,
  438. and may be considered a security problem.
  439. fax Facsimile transmission.  This is experimental and based
  440. on Sam Leffler's HylaFAX software.  For more information,
  441. see http://www.vix.com/hylafax/.
  442. pop Post Office Protocol.
  443. procmail An interface to procmail (does not come with sendmail).
  444. This is designed to be used in mailertables.  For example,
  445. a common question is "how do I forward all mail for a given
  446. domain to a single person?".  If you have this mailer
  447. defined, you could set up a mailertable reading:
  448. host.com procmail:/etc/procmailrcs/host.com
  449. with the file /etc/procmailrcs/host.com reading:
  450. :0 # forward mail for host.com
  451. ! -oi -f $1 person@other.host
  452. This would arrange for (anything)@host.com to be sent
  453. to person@other.host.  Within the procmail script, $1 is
  454. the name of the sender and $2 is the name of the recipient.
  455. If you use this with FEATURE(`local_procmail'), the FEATURE
  456. should be listed first.
  457. mail11 The DECnet mail11 mailer, useful only if you have the mail11
  458. program from gatekeeper.dec.com:/pub/DEC/gwtools (and
  459. DECnet, of course).  This is for Phase IV DECnet support;
  460. if you have Phase V at your site you may have additional
  461. problems.
  462. phquery The phquery program.  This is somewhat counterintuitively
  463. referenced as the "ph" mailer internally.  It can be used
  464. to do CCSO name server lookups.  The phquery program, which
  465. this mailer uses, is distributed with the ph client.
  466. cyrus The cyrus and cyrusbb mailers.  The cyrus mailer delivers to
  467. a local cyrus user.  this mailer can make use of the
  468. "user+detail@local.host" syntax; it will deliver the mail to
  469. the user's "detail" mailbox if the mailbox's ACL permits.
  470. The cyrusbb mailer delivers to a system-wide cyrus mailbox
  471. if the mailbox's ACL permits.  The cyrus mailer must be
  472. defined after the local mailer.
  473. qpage A mailer for QuickPage, a pager interface.  See
  474. http://www.qpage.org/ for further information.
  475. The local mailer accepts addresses of the form "user+detail", where
  476. the "+detail" is not used for mailbox matching but is available
  477. to certain local mail programs (in particular, see
  478. FEATURE(`local_procmail')).  For example, "eric", "eric+sendmail", and
  479. "eric+sww" all indicate the same user, but additional arguments <null>,
  480. "sendmail", and "sww" may be provided for use in sorting mail.
  481. +----------+
  482. | FEATURES |
  483. +----------+
  484. Special features can be requested using the "FEATURE" macro.  For
  485. example, the .mc line:
  486. FEATURE(`use_cw_file')
  487. tells sendmail that you want to have it read an /etc/mail/local-host-names
  488. file to get values for class $=w.  The FEATURE may contain up to 9
  489. optional parameters -- for example:
  490. FEATURE(`mailertable', `dbm /usr/lib/mailertable')
  491. The default database map type for the table features can be set with
  492. define(`DATABASE_MAP_TYPE', `dbm')
  493. which would set it to use ndbm databases.  The default is the Berkeley DB
  494. hash database format.  Note that you must still declare a database map type
  495. if you specify an argument to a FEATURE.  DATABASE_MAP_TYPE is only used
  496. if no argument is given for the FEATURE.  It must be specified before any
  497. feature that uses a map.
  498. Available features are:
  499. use_cw_file Read the file /etc/mail/local-host-names file to get
  500. alternate names for this host.  This might be used if you
  501. were on a host that MXed for a dynamic set of other hosts.
  502. If the set is static, just including the line "Cw<name1>
  503. <name2> ..." (where the names are fully qualified domain
  504. names) is probably superior.  The actual filename can be
  505. overridden by redefining confCW_FILE.
  506. use_ct_file Read the file /etc/mail/trusted-users file to get the
  507. names of users that will be ``trusted'', that is, able to
  508. set their envelope from address using -f without generating
  509. a warning message.  The actual filename can be overridden
  510. by redefining confCT_FILE.
  511. redirect Reject all mail addressed to "address.REDIRECT" with
  512. a ``551 User not local; please try <address>'' message.
  513. If this is set, you can alias people who have left
  514. to their new address with ".REDIRECT" appended.
  515. nouucp Don't route UUCP addresses.  This feature takes one
  516. parameter:
  517. `reject': reject addresses which have "!" in the local
  518. part unless it originates from a system
  519. that is allowed to relay.
  520. `nospecial': don't do anything special with "!".
  521. Warnings: 1. See the NOTICE in the ANTI-SPAM section.
  522. 2. don't remove "!" from OperatorChars if `reject' is
  523. given as parameter.
  524. nocanonify Don't pass addresses to $[ ... $] for canonification
  525. by default.  It can be changed by setting the
  526. DaemonPortOptions modifiers (M=).  That is,
  527. FEATURE(`nocanonify') will be overridden by setting the
  528. 'c' flag.  Conversely, if FEATURE(`nocanonify') is not used,
  529. it can be emulated by setting the 'C' flag
  530. (DaemonPortOptions=Modifiers=C).  This would generally only
  531. be used by sites that only act as mail gateways or which have
  532. user agents that do full canonification themselves.  You may
  533. also want to use
  534. "define(`confBIND_OPTS', `-DNSRCH -DEFNAMES')" to turn off
  535. the usual resolver options that do a similar thing.
  536. An exception list for FEATURE(`nocanonify') can be
  537. specified with CANONIFY_DOMAIN or CANONIFY_DOMAIN_FILE,
  538. i.e., a list of domains which are nevertheless passed to
  539. $[ ... $] for canonification.  This is useful to turn on
  540. canonification for local domains, e.g., use
  541. CANONIFY_DOMAIN(`my.domain my') to canonify addresses
  542. which end in "my.domain" or "my".
  543. Another way to require canonification in the local
  544. domain is CANONIFY_DOMAIN(`$=m').
  545. A trailing dot is added to addresses with more than
  546. one component in it such that other features which
  547. expect a trailing dot (e.g., virtusertable) will
  548. still work.
  549. If `canonify_hosts' is specified as parameter, i.e.,
  550. FEATURE(`nocanonify', `canonify_hosts'), then
  551. addresses which have only a hostname, e.g.,
  552. <user@host>, will be canonified (and hopefully fully
  553. qualified), too.
  554. stickyhost If set, email sent to "user@local.host" are marked
  555. as "sticky" -- that is, the local addresses aren't
  556. matched against UDB and don't go through ruleset 5.
  557. This is used if you want a set up where "user" is
  558. not necessarily the same as "user@local.host", e.g.,
  559. to make a distinct domain-wide namespace.  Prior to
  560. 8.7 this was the default, and notsticky was used to
  561. turn this off.
  562. mailertable Include a "mailer table" which can be used to override
  563. routing for particular domains (which are not in $=w, i.e.
  564. local host names).  The argument of the FEATURE may be the
  565. key definition.  If none is specified, the definition used
  566. is:
  567. hash /etc/mail/mailertable
  568. Keys in this database are fully qualified domain names
  569. or partial domains preceded by a dot -- for example,
  570. "vangogh.CS.Berkeley.EDU" or ".CS.Berkeley.EDU".  As a
  571. special case of the latter, "." matches any domain not
  572. covered by other keys.  Values must be of the form:
  573. mailer:domain
  574. where "mailer" is the internal mailer name, and "domain"
  575. is where to send the message.  These maps are not
  576. reflected into the message header.  As a special case,
  577. the forms:
  578. local:user
  579. will forward to the indicated user using the local mailer,
  580. local:
  581. will forward to the original user in the e-mail address
  582. using the local mailer, and
  583. error:code message
  584. error:D.S.N:code message
  585. will give an error message with the indicated SMTP reply
  586. code and message, where D.S.N is an RFC 1893 compliant
  587. error code.
  588. domaintable Include a "domain table" which can be used to provide
  589. domain name mapping.  Use of this should really be
  590. limited to your own domains.  It may be useful if you
  591. change names (e.g., your company changes names from
  592. oldname.com to newname.com).  The argument of the
  593. FEATURE may be the key definition.  If none is specified,
  594. the definition used is:
  595. hash /etc/mail/domaintable
  596. The key in this table is the domain name; the value is
  597. the new (fully qualified) domain.  Anything in the
  598. domaintable is reflected into headers; that is, this
  599. is done in ruleset 3.
  600. bitdomain Look up bitnet hosts in a table to try to turn them into
  601. internet addresses.  The table can be built using the
  602. bitdomain program contributed by John Gardiner Myers.
  603. The argument of the FEATURE may be the key definition; if
  604. none is specified, the definition used is:
  605. hash /etc/mail/bitdomain
  606. Keys are the bitnet hostname; values are the corresponding
  607. internet hostname.
  608. uucpdomain Similar feature for UUCP hosts.  The default map definition
  609. is:
  610. hash /etc/mail/uudomain
  611. At the moment there is no automagic tool to build this
  612. database.
  613. always_add_domain
  614. Include the local host domain even on locally delivered
  615. mail.  Normally it is not added on unqualified names.
  616. However, if you use a shared message store but do not use
  617. the same user name space everywhere, you may need the host
  618. name on local names.
  619. allmasquerade If masquerading is enabled (using MASQUERADE_AS), this
  620. feature will cause recipient addresses to also masquerade
  621. as being from the masquerade host.  Normally they get
  622. the local hostname.  Although this may be right for
  623. ordinary users, it can break local aliases.  For example,
  624. if you send to "localalias", the originating sendmail will
  625. find that alias and send to all members, but send the
  626. message with "To: localalias@masqueradehost".  Since that
  627. alias likely does not exist, replies will fail.  Use this
  628. feature ONLY if you can guarantee that the ENTIRE
  629. namespace on your masquerade host supersets all the
  630. local entries.
  631. limited_masquerade
  632. Normally, any hosts listed in $=w are masqueraded.  If this
  633. feature is given, only the hosts listed in $=M are masqueraded.
  634. This is useful if you have several domains with disjoint
  635. namespaces hosted on the same machine.
  636. masquerade_entire_domain
  637. If masquerading is enabled (using MASQUERADE_AS) and
  638. MASQUERADE_DOMAIN (see below) is set, this feature will
  639. cause addresses to be rewritten such that the masquerading
  640. domains are actually entire domains to be hidden.  All
  641. hosts within the masquerading domains will be rewritten
  642. to the masquerade name (used in MASQUERADE_AS).  For example,
  643. if you have:
  644. MASQUERADE_AS(`masq.com')
  645. MASQUERADE_DOMAIN(`foo.org')
  646. MASQUERADE_DOMAIN(`bar.com')
  647. then *foo.org and *bar.com are converted to masq.com.  Without
  648. this feature, only foo.org and bar.com are masqueraded.
  649.     NOTE: only domains within your jurisdiction and
  650.     current hierarchy should be masqueraded using this.
  651. genericstable This feature will cause certain addresses originating locally
  652. (i.e., that are unqualified) or a domain listed in $=G to be
  653. looked up in a map and turned into another ("generic") form,
  654. which can change both the domain name and the user name.  This
  655. is similar to the userdb functionality.  The same types of
  656. addresses as for masquerading are looked up, i.e., only header
  657. sender addresses unless the allmasquerade and/or
  658. masquerade_envelope features are given.  Qualified addresses
  659. must have the domain part in the list of names given by the
  660. by the macros GENERICS_DOMAIN or GENERICS_DOMAIN_FILE
  661. (analogously to MASQUERADE_DOMAIN and MASQUERADE_DOMAIN_FILE,
  662. see below).
  663. The argument of FEATURE(`genericstable') may be the map
  664. definition; the default map definition is:
  665. hash /etc/mail/genericstable
  666. The key for this table is either the full address, the domain
  667. (with a leading @; the localpart is passed as first argument)
  668. or the unqualified username (tried in the order mentioned);
  669. the value is the new user address.  If the new user address
  670. does not include a domain, it will be qualified in the standard
  671. manner, i.e., using $j or the masquerade name.  Note that the
  672. address being looked up must be fully qualified.  For local
  673. mail, it is necessary to use FEATURE(`always_add_domain')
  674. for the addresses to be qualified.
  675. The "+detail" of an address is passed as %1, so entries like
  676. old+*@foo.org new+%1@elsewhere.com
  677. gen+*@foo.org %1@elsewhere.com
  678. and other forms are possible.
  679. generics_entire_domain
  680. If the genericstable is enabled and GENERICS_DOMAIN or
  681. GENERICS_DOMAIN_FILE is used, this feature will cause
  682. addresses to be searched in the map if their domain
  683. parts are subdomains of elements in class $=G.
  684. virtusertable A domain-specific form of aliasing, allowing multiple
  685. virtual domains to be hosted on one machine.  For example,
  686. if the virtuser table contained:
  687. info@foo.com foo-info
  688. info@bar.com bar-info
  689. joe@bar.com error:nouser No such user here
  690. jax@bar.com error:D.S.N:unavailable Address invalid
  691. @baz.org jane@elsewhere.net
  692. then mail addressed to info@foo.com will be sent to the
  693. address foo-info, mail addressed to info@bar.com will be
  694. delivered to bar-info, and mail addressed to anyone at baz.org
  695. will be sent to jane@elsewhere.net, mail to joe@bar.com will
  696. be rejected with the specified error message, and mail to
  697. jax@bar.com will also have a RFC 1893 compliant error code
  698. D.S.N.
  699. The username from the original address is passed
  700. as %1 allowing:
  701. @foo.org %1@elsewhere.com
  702. meaning someone@foo.org will be sent to someone@elsewhere.com.
  703. Additionally, if the local part consists of "user+detail"
  704. then "detail" is passed as %2 when a match against user+*
  705. is attempted, so entries like
  706. old+*@foo.org new+%2@elsewhere.com
  707. gen+*@foo.org %2@elsewhere.com
  708. and other forms are possible.
  709. All the host names on the left hand side (foo.com, bar.com,
  710. and baz.org) must be in $=w or $={VirtHost}, the latter can
  711. be defined by the macros VIRTUSER_DOMAIN or
  712. VIRTUSER_DOMAIN_FILE (analogously to MASQUERADE_DOMAIN and
  713. MASQUERADE_DOMAIN_FILE, see below).  If VIRTUSER_DOMAIN or
  714. VIRTUSER_DOMAIN_FILE is used, then the entries of $={VirtHost}
  715. are added to class 'R', i.e., relaying is allowed to
  716. (and from) those domains.  The default map definition is:
  717. hash /etc/mail/virtusertable
  718. A new definition can be specified as the second argument of
  719. the FEATURE macro, such as
  720. FEATURE(`virtusertable', `dbm /etc/mail/virtusers')
  721. virtuser_entire_domain
  722. If the virtusertable is enabled and VIRTUSER_DOMAIN or
  723. VIRTUSER_DOMAIN_FILE is used, this feature will cause
  724. addresses to be searched in the map if their domain
  725. parts are subdomains of elements in class $={VirtHost}.
  726. ldap_routing Implement LDAP-based e-mail recipient routing according to
  727. the Internet Draft draft-lachman-laser-ldap-mail-routing-01.
  728. This provides a method to re-route addresses with a
  729. domain portion in the $={LDAPRoute} class to either a
  730. different mail host or a different address.  Hosts can
  731. be added to this class using LDAPROUTE_DOMAIN and
  732. LDAPROUTE_DOMAIN_FILE (analogously to MASQUERADE_DOMAIN and
  733. MASQUERADE_DOMAIN_FILE, see below).
  734. See the LDAP ROUTING section below for more information.
  735. nodns If you aren't running DNS at your site (for example,
  736. you are UUCP-only connected).  It's hard to consider
  737. this a "feature", but hey, it had to go somewhere.
  738. Actually, as of 8.7 this is a no-op -- remove "dns" from
  739. the hosts service switch entry instead.
  740. nullclient This is a special case -- it creates a configuration file
  741. containing nothing but support for forwarding all mail to a
  742. central hub via a local SMTP-based network.  The argument
  743. is the name of that hub.
  744. The only other feature that should be used in conjunction
  745. with this one is "nocanonify" (this causes addresses to
  746. be sent unqualified via the SMTP connection; normally
  747. they are qualified with the masquerade name, which
  748. defaults to the name of the hub machine).  No mailers
  749. should be defined.  No aliasing or forwarding is done.
  750. local_lmtp Use an LMTP capable local mailer.  The argument to this
  751. feature is the pathname of an LMTP capable mailer.  By
  752. default, mail.local is used.  This is expected to be the
  753. mail.local which came with the 8.9 distribution which is
  754. LMTP capable.  The path to mail.local is set by the
  755. confEBINDIR m4 variable -- making the default
  756. LOCAL_MAILER_PATH /usr/libexec/mail.local.
  757. WARNING: This feature sets LOCAL_MAILER_FLAGS unconditionally,
  758. i.e., without respecting any definitions in an OSTYPE setting.
  759. local_procmail Use procmail or another delivery agent as the local mailer.
  760. The argument to this feature is the pathname of the
  761. delivery agent, which defaults to PROCMAIL_MAILER_PATH.
  762. Note that this does NOT use PROCMAIL_MAILER_FLAGS or
  763. PROCMAIL_MAILER_ARGS for the local mailer; tweak
  764. LOCAL_MAILER_FLAGS and LOCAL_MAILER_ARGS instead, or
  765. specify the appropriate parameters.  When procmail is used,
  766. the local mailer can make use of the
  767. "user+indicator@local.host" syntax; normally the +indicator
  768. is just tossed, but by default it is passed as the -a
  769. argument to procmail.
  770. This feature can take up to three arguments:
  771. 1. Path to the mailer program
  772.    [default: /usr/local/bin/procmail]
  773. 2. Argument vector including name of the program
  774.    [default: procmail -Y -a $h -d $u]
  775. 3. Flags for the mailer [default: SPfhn9]
  776. Empty arguments cause the defaults to be taken.
  777. For example, this allows it to use the maildrop
  778. (http://www.flounder.net/~mrsam/maildrop/) mailer instead
  779. by specifying:
  780. FEATURE(`local_procmail', `/usr/local/bin/maildrop',
  781.  `maildrop -d $u')
  782. or scanmails using:
  783. FEATURE(`local_procmail', `/usr/local/bin/scanmails')
  784. WARNING: This feature sets LOCAL_MAILER_FLAGS unconditionally,
  785. i.e.,  without respecting any definitions in an OSTYPE setting.
  786. bestmx_is_local Accept mail as though locally addressed for any host that
  787. lists us as the best possible MX record.  This generates
  788. additional DNS traffic, but should be OK for low to
  789. medium traffic hosts.  The argument may be a set of
  790. domains, which will limit the feature to only apply to
  791. these domains -- this will reduce unnecessary DNS
  792. traffic.  THIS FEATURE IS FUNDAMENTALLY INCOMPATIBLE WITH
  793. WILDCARD MX RECORDS!!!  If you have a wildcard MX record
  794. that matches your domain, you cannot use this feature.
  795. smrsh Use the SendMail Restricted SHell (smrsh) provided
  796. with the distribution instead of /bin/sh for mailing
  797. to programs.  This improves the ability of the local
  798. system administrator to control what gets run via
  799. e-mail.  If an argument is provided it is used as the
  800. pathname to smrsh; otherwise, the path defined by
  801. confEBINDIR is used for the smrsh binary -- by default,
  802. /usr/libexec/smrsh is assumed.
  803. promiscuous_relay
  804. By default, the sendmail configuration files do not permit
  805. mail relaying (that is, accepting mail from outside your
  806. domain and sending it to another host outside your domain).
  807. This option sets your site to allow mail relaying from any
  808. site to any site.  In general, it is better to control the
  809. relaying more carefully with the access db and the 'R'
  810. class ($=R).  Domains can be added to class 'R' by the
  811. macros RELAY_DOMAIN or RELAY_DOMAIN_FILE (analogously to
  812. MASQUERADE_DOMAIN and MASQUERADE_DOMAIN_FILE, see below).
  813. relay_entire_domain
  814. By default, only hosts listed as RELAY in the access db
  815. will be allowed to relay.  This option also allows any
  816. host in your domain as defined by the 'm' class ($=m).
  817. relay_hosts_only
  818. By default, names that are listed as RELAY in the access
  819. db and class 'R' ($=R) are domain names, not host names.
  820. For example, if you specify ``foo.com'', then mail to or
  821. from foo.com, abc.foo.com, or a.very.deep.domain.foo.com
  822. will all be accepted for relaying.  This feature changes
  823. the behaviour to lookup individual host names only.
  824. relay_based_on_MX
  825. Turns on the ability to allow relaying based on the MX
  826. records of the host portion of an incoming recipient; that
  827. is, if an MX record for host foo.com points to your site,
  828. you will accept and relay mail addressed to foo.com.  See
  829. description below for more information before using this
  830. feature.  Also, see the KNOWNBUGS entry regarding bestmx
  831. map lookups.
  832. FEATURE(`relay_based_on_MX') does not necessarily allow
  833. routing of these messages which you expect to be allowed,
  834. if route address syntax (or %-hack syntax) is used.  If
  835. this is a problem, add entries to the access-table or use
  836. FEATURE(`loose_relay_check').
  837. relay_mail_from
  838. Allows relaying if the mail sender is listed as RELAY in the
  839. access map.  If an optional argument `domain' is given, the
  840. domain portion of the mail sender is checked too.  This
  841. should only be used if absolutely necessary as the sender
  842. address can be easily forged.
  843. relay_local_from
  844. Allows relaying if the domain portion of the mail sender
  845. is a local host.  This should only be used if absolutely
  846. necessary as it opens a window for spammers.  Specifically,
  847. they can send mail to your mail server that claims to be
  848. from your domain (either directly or via a routed address),
  849. and you will go ahead and relay it out to arbitrary hosts
  850. on the Internet.
  851. accept_unqualified_senders
  852. Normally, MAIL FROM: commands in the SMTP session will be
  853. refused if the connection is a network connection and the
  854. sender address does not include a domain name.  If your
  855. setup sends local mail unqualified (i.e., MAIL FROM: <joe>),
  856. you will need to use this feature to accept unqualified
  857. sender addresses.  Setting the DaemonPortOptions modifier
  858. 'u' overrides the default behavior, i.e., unqualified
  859. addresses are accepted even without this FEATURE.
  860. If this FEATURE is not used, the DaemonPortOptions modifier
  861. 'f' can be used to enforce fully qualified addresses.
  862. accept_unresolvable_domains
  863. Normally, MAIL FROM: commands in the SMTP session will be
  864. refused if the host part of the argument to MAIL FROM:
  865. cannot be located in the host name service (e.g., an A or
  866. MX record in DNS).  If you are inside a firewall that has
  867. only a limited view of the Internet host name space, this
  868. could cause problems.  In this case you probably want to
  869. use this feature to accept all domains on input, even if
  870. they are unresolvable.
  871. access_db Turns on the access database feature.  The access db gives
  872. you the ability to allow or refuse to accept mail from
  873. specified domains for administrative reasons.  By default,
  874. the access database specification is:
  875. hash /etc/mail/access
  876. The format of the database is described in the anti-spam
  877. configuration control section later in this document.
  878. blacklist_recipients
  879. Turns on the ability to block incoming mail for certain
  880. recipient usernames, hostnames, or addresses.  For
  881. example, you can block incoming mail to user nobody,
  882. host foo.mydomain.com, or guest@bar.mydomain.com.
  883. These specifications are put in the access db as
  884. described in the anti-spam configuration control section
  885. later in this document.
  886. rbl This feature is deprecated! Please use dnsbl instead.
  887. Turns on rejection of hosts found in the Realtime Blackhole
  888. List.  If an argument is provided it is used as the
  889. name server to contact; otherwise, the main RBL server at
  890. rbl.maps.vix.com is used.  For details, see
  891. http://maps.vix.com/rbl/.
  892. dnsbl Turns on rejection of hosts found in an DNS based rejection
  893. list.  If an argument is provided it is used as the name
  894. sever to contact; otherwise it defaults to rbl.maps.vix.com.
  895. An explanation for an DNS based rejection list can be found
  896. http://maps.vix.com/rbl/.  A second argument can be used to
  897. change the default error message of
  898. Mail from $&{client_addr} refused by blackhole site SERVER
  899. where SERVER is replaced by the first argument.  This feature
  900. can be included several times to query different DNS based
  901. rejection lists.
  902. loose_relay_check
  903. Normally, if % addressing is used for a recipient, e.g.
  904. user%site@othersite, and othersite is in class 'R', the
  905. check_rcpt ruleset will strip @othersite and recheck
  906. user@site for relaying.  This feature changes that
  907. behavior.  It should not be needed for most installations.
  908. no_msa Don't generate the default MSA daemon, i.e.,
  909. DAEMON_OPTIONS(`Port=587,Name=MSA,M=E')
  910. +-------+
  911. | HACKS |
  912. +-------+
  913. Some things just can't be called features.  To make this clear,
  914. they go in the hack subdirectory and are referenced using the HACK
  915. macro.  These will tend to be site-dependent.  The release
  916. includes the Berkeley-dependent "cssubdomain" hack (that makes
  917. sendmail accept local names in either Berkeley.EDU or CS.Berkeley.EDU;
  918. this is intended as a short-term aid while moving hosts into
  919. subdomains.
  920. +--------------------+
  921. | SITE CONFIGURATION |
  922. +--------------------+
  923.     *****************************************************
  924.     * This section is really obsolete, and is preserved *
  925.     * only for back compatibility.  You should plan on *
  926.     * using mailertables for new installations.   In *
  927.     * particular, it doesn't work for the newer forms *
  928.     * of UUCP mailers, such as uucp-uudom. *
  929.     *****************************************************
  930. Complex sites will need more local configuration information, such as
  931. lists of UUCP hosts they speak with directly.  This can get a bit more
  932. tricky.  For an example of a "complex" site, see cf/ucbvax.mc.
  933. If your host is known by several different names, you need to augment
  934. the $=w class.  This is a list of names by which you are known, and
  935. anything sent to an address using a host name in this list will be
  936. treated as local mail.  You can do this in two ways:  either create the
  937. file /etc/mail/local-host-names containing a list of your aliases (one per
  938. line), and use ``FEATURE(`use_cw_file')'' in the .mc file, or add
  939. ``LOCAL_DOMAIN(`alias.host.name')''.  Be sure you use the fully-qualified
  940. name of the host, rather than a short name.
  941. The SITECONFIG macro allows you to indirectly reference site-dependent
  942. configuration information stored in the siteconfig subdirectory.  For
  943. example, the line
  944. SITECONFIG(`uucp.ucbvax', `ucbvax', `U')
  945. reads the file uucp.ucbvax for local connection information.  The
  946. second parameter is the local name (in this case just "ucbvax" since
  947. it is locally connected, and hence a UUCP hostname).  The third
  948. parameter is the name of both a macro to store the local name (in
  949. this case, $U) and the name of the class (e.g., $=U) in which to store
  950. the host information read from the file.  Another SITECONFIG line reads
  951. SITECONFIG(`uucp.ucbarpa', `ucbarpa.Berkeley.EDU', `W')
  952. This says that the file uucp.ucbarpa contains the list of UUCP sites
  953. connected to ucbarpa.Berkeley.EDU.  The $=W class will be used to
  954. store this list, and $W is defined to be ucbarpa.Berkeley.EDU, that
  955. is, the name of the relay to which the hosts listed in uucp.ucbarpa
  956. are connected.  [The machine ucbarpa is gone now, but this
  957. out-of-date configuration file has been left around to demonstrate
  958. how you might do this.]
  959. Note that the case of SITECONFIG with a third parameter of ``U'' is
  960. special; the second parameter is assumed to be the UUCP name of the
  961. local site, rather than the name of a remote site, and the UUCP name
  962. is entered into $=w (the list of local hostnames) as $U.UUCP.
  963. The siteconfig file (e.g., siteconfig/uucp.ucbvax.m4) contains nothing
  964. more than a sequence of SITE macros describing connectivity.  For
  965. example:
  966. SITE(`cnmat')
  967. SITE(`sgi olympus')
  968. The second example demonstrates that you can use two names on the
  969. same line; these are usually aliases for the same host (or are at
  970. least in the same company).
  971. +--------------------+
  972. | USING UUCP MAILERS |
  973. +--------------------+
  974. It's hard to get UUCP mailers right because of the extremely ad hoc
  975. nature of UUCP addressing.  These config files are really designed
  976. for domain-based addressing, even for UUCP sites.
  977. There are four UUCP mailers available.  The choice of which one to
  978. use is partly a matter of local preferences and what is running at
  979. the other end of your UUCP connection.  Unlike good protocols that
  980. define what will go over the wire, UUCP uses the policy that you
  981. should do what is right for the other end; if they change, you have
  982. to change.  This makes it hard to do the right thing, and discourages
  983. people from updating their software.  In general, if you can avoid
  984. UUCP, please do.
  985. The major choice is whether to go for a domainized scheme or a
  986. non-domainized scheme.  This depends entirely on what the other
  987. end will recognize.  If at all possible, you should encourage the
  988. other end to go to a domain-based system -- non-domainized addresses
  989. don't work entirely properly.
  990. The four mailers are:
  991.     uucp-old (obsolete name: "uucp")
  992. This is the oldest, the worst (but the closest to UUCP) way of
  993. sending messages accros UUCP connections.  It does bangify
  994. everything and prepends $U (your UUCP name) to the sender's
  995. address (which can already be a bang path itself).  It can
  996. only send to one address at a time, so it spends a lot of
  997. time copying duplicates of messages.  Avoid this if at all
  998. possible.
  999.     uucp-new (obsolete name: "suucp")
  1000. The same as above, except that it assumes that in one rmail
  1001. command you can specify several recipients.  It still has a
  1002. lot of other problems.
  1003.     uucp-dom
  1004. This UUCP mailer keeps everything as domain addresses.
  1005. Basically, it uses the SMTP mailer rewriting rules.  This mailer
  1006. is only included if MAILER(`smtp') is also specified.
  1007. Unfortunately, a lot of UUCP mailer transport agents require
  1008. bangified addresses in the envelope, although you can use
  1009. domain-based addresses in the message header.  (The envelope
  1010. shows up as the From_ line on UNIX mail.)  So....
  1011.     uucp-uudom
  1012. This is a cross between uucp-new (for the envelope addresses)
  1013. and uucp-dom (for the header addresses).  It bangifies the
  1014. envelope sender (From_ line in messages) without adding the
  1015. local hostname, unless there is no host name on the address
  1016. at all (e.g., "wolf") or the host component is a UUCP host name
  1017. instead of a domain name ("somehost!wolf" instead of
  1018. "some.dom.ain!wolf").  This is also included only if MAILER(`smtp')
  1019. is also specified.
  1020. Examples:
  1021. On host grasp.insa-lyon.fr (UUCP host name "grasp"), the following
  1022. summarizes the sender rewriting for various mailers.
  1023. Mailer          sender rewriting in the envelope
  1024. ------ ------ -------------------------
  1025. uucp-{old,new} wolf grasp!wolf
  1026. uucp-dom wolf wolf@grasp.insa-lyon.fr
  1027. uucp-uudom wolf grasp.insa-lyon.fr!wolf
  1028. uucp-{old,new} wolf@fr.net grasp!fr.net!wolf
  1029. uucp-dom wolf@fr.net wolf@fr.net
  1030. uucp-uudom wolf@fr.net fr.net!wolf
  1031. uucp-{old,new} somehost!wolf grasp!somehost!wolf
  1032. uucp-dom somehost!wolf somehost!wolf@grasp.insa-lyon.fr
  1033. uucp-uudom somehost!wolf grasp.insa-lyon.fr!somehost!wolf
  1034. If you are using one of the domainized UUCP mailers, you really want
  1035. to convert all UUCP addresses to domain format -- otherwise, it will
  1036. do it for you (and probably not the way you expected).  For example,
  1037. if you have the address foo!bar!baz (and you are not sending to foo),
  1038. the heuristics will add the @uucp.relay.name or @local.host.name to
  1039. this address.  However, if you map foo to foo.host.name first, it
  1040. will not add the local hostname.  You can do this using the uucpdomain
  1041. feature.
  1042. +-------------------+
  1043. | TWEAKING RULESETS |
  1044. +-------------------+
  1045. For more complex configurations, you can define special rules.
  1046. The macro LOCAL_RULE_3 introduces rules that are used in canonicalizing
  1047. the names.  Any modifications made here are reflected in the header.
  1048. A common use is to convert old UUCP addresses to SMTP addresses using
  1049. the UUCPSMTP macro.  For example:
  1050. LOCAL_RULE_3
  1051. UUCPSMTP(`decvax', `decvax.dec.com')
  1052. UUCPSMTP(`research', `research.att.com')
  1053. will cause addresses of the form "decvax!user" and "research!user"
  1054. to be converted to "user@decvax.dec.com" and "user@research.att.com"
  1055. respectively.
  1056. This could also be used to look up hosts in a database map:
  1057. LOCAL_RULE_3
  1058. R$* < @ $+ > $* $: $1 < @ $(hostmap $2 $) > $3
  1059. This map would be defined in the LOCAL_CONFIG portion, as shown below.
  1060. Similarly, LOCAL_RULE_0 can be used to introduce new parsing rules.
  1061. For example, new rules are needed to parse hostnames that you accept
  1062. via MX records.  For example, you might have:
  1063. LOCAL_RULE_0
  1064. R$+ <@ host.dom.ain.> $#uucp $@ cnmat $: $1 < @ host.dom.ain.>
  1065. You would use this if you had installed an MX record for cnmat.Berkeley.EDU
  1066. pointing at this host; this rule catches the message and forwards it on
  1067. using UUCP.
  1068. You can also tweak rulesets 1 and 2 using LOCAL_RULE_1 and LOCAL_RULE_2.
  1069. These rulesets are normally empty.
  1070. A similar macro is LOCAL_CONFIG.  This introduces lines added after the
  1071. boilerplate option setting but before rulesets.  Do not declare rulesets in
  1072. the LOCAL_CONFIG section.  It can be used to declare local database maps or
  1073. whatever.  For example:
  1074. LOCAL_CONFIG
  1075. Khostmap hash /etc/mail/hostmap
  1076. Kyplocal nis -m hosts.byname
  1077. +---------------------------+
  1078. | MASQUERADING AND RELAYING |
  1079. +---------------------------+
  1080. You can have your host masquerade as another using
  1081. MASQUERADE_AS(`host.domain')
  1082. This causes mail being sent to be labeled as coming from the
  1083. indicated host.domain, rather than $j.  One normally masquerades as
  1084. one of one's own subdomains (for example, it's unlikely that
  1085. Berkeley would choose to masquerade as an MIT site).  This
  1086. behaviour is modified by a plethora of FEATUREs; in particular, see
  1087. masquerade_envelope, allmasquerade, limited_masquerade, and
  1088. masquerade_entire_domain.
  1089. The masquerade name is not normally canonified, so it is important
  1090. that it be your One True Name, that is, fully qualified and not a
  1091. CNAME.  However, if you use a CNAME, the receiving side may canonify
  1092. it for you, so don't think you can cheat CNAME mapping this way.
  1093. Normally the only addresses that are masqueraded are those that come
  1094. from this host (that is, are either unqualified or in $=w, the list
  1095. of local domain names).  You can augment this list using
  1096. MASQUERADE_DOMAIN(`otherhost.domain')
  1097. The effect of this is that although mail to user@otherhost.domain
  1098. will not be delivered locally, any mail including any user@otherhost.domain
  1099. will, when relayed, be rewritten to have the MASQUERADE_AS address.
  1100. This can be a space-separated list of names.
  1101. If these names are in a file, you can use
  1102. MASQUERADE_DOMAIN_FILE(`filename')
  1103. to read the list of names from the indicated file.
  1104. To exempt hosts or subdomains from being masqueraded, you can use
  1105. MASQUERADE_EXCEPTION(`host.domain')
  1106. This can come handy if you want to masquerade a whole domain
  1107. except for one (or a few) host(s).
  1108. Normally only header addresses are masqueraded.  If you want to
  1109. masquerade the envelope as well, use
  1110. FEATURE(`masquerade_envelope')
  1111. There are always users that need to be "exposed" -- that is, their
  1112. internal site name should be displayed instead of the masquerade name.
  1113. Root is an example (which has been "exposed" by default prior to 8.10).
  1114. You can add users to this list using
  1115. EXPOSED_USER(`usernames')
  1116. This adds users to class E; you could also use something like
  1117. FE/etc/mail/exposed-users
  1118. You can also arrange to relay all unqualified names (that is, names
  1119. without @host) to a relay host.  For example, if you have a central
  1120. email server, you might relay to that host so that users don't have
  1121. to have .forward files or aliases.  You can do this using
  1122. define(`LOCAL_RELAY', `mailer:hostname')
  1123. The ``mailer:'' can be omitted, in which case the mailer defaults to
  1124. "relay".  There are some user names that you don't want relayed, perhaps
  1125. because of local aliases.  A common example is root, which may be
  1126. locally aliased.  You can add entries to this list using
  1127. LOCAL_USER(`usernames')
  1128. This adds users to class L; you could also use something like
  1129. FL/etc/mail/local-users
  1130. If you want all incoming mail sent to a centralized hub, as for a
  1131. shared /var/spool/mail scheme, use
  1132. define(`MAIL_HUB', `mailer:hostname')
  1133. Again, ``mailer:'' defaults to "relay".  If you define both LOCAL_RELAY
  1134. and MAIL_HUB _AND_ you have FEATURE(`stickyhost'), unqualified names will
  1135. be sent to the LOCAL_RELAY and other local names will be sent to MAIL_HUB.
  1136. Names in $=L will be delivered locally, so you MUST have aliases or
  1137. .forward files for them.
  1138. For example, if you are on machine mastodon.CS.Berkeley.EDU and you have
  1139. FEATURE(`stickyhost'), the following combinations of settings will have the
  1140. indicated effects:
  1141. email sent to.... eric   eric@mastodon.CS.Berkeley.EDU
  1142. LOCAL_RELAY set to mail.CS.Berkeley.EDU   (delivered locally)
  1143. mail.CS.Berkeley.EDU   (no local aliasing)     (aliasing done)
  1144. MAIL_HUB set to mammoth.CS.Berkeley.EDU   mammoth.CS.Berkeley.EDU
  1145. mammoth.CS.Berkeley.EDU   (aliasing done)     (aliasing done)
  1146. Both LOCAL_RELAY and mail.CS.Berkeley.EDU   mammoth.CS.Berkeley.EDU
  1147. MAIL_HUB set as above   (no local aliasing)     (aliasing done)
  1148. If you do not have FEATURE(`stickyhost') set, then LOCAL_RELAY and
  1149. MAIL_HUB act identically, with MAIL_HUB taking precedence.
  1150. If you want all outgoing mail to go to a central relay site, define
  1151. SMART_HOST as well.  Briefly:
  1152. LOCAL_RELAY applies to unqualified names (e.g., "eric").
  1153. MAIL_HUB applies to names qualified with the name of the
  1154. local host (e.g., "eric@mastodon.CS.Berkeley.EDU").
  1155. SMART_HOST applies to names qualified with other hosts or
  1156. bracketed addresses (e.g., "eric@mastodon.CS.Berkeley.EDU"
  1157. or "eric@[127.0.0.1]").
  1158. However, beware that other relays (e.g., UUCP_RELAY, BITNET_RELAY,
  1159. DECNET_RELAY, and FAX_RELAY) take precedence over SMART_HOST, so if you
  1160. really want absolutely everything to go to a single central site you will
  1161. need to unset all the other relays -- or better yet, find or build a
  1162. minimal config file that does this.
  1163. For duplicate suppression to work properly, the host name is best
  1164. specified with a terminal dot:
  1165. define(`MAIL_HUB', `host.domain.')
  1166.       note the trailing dot ---^
  1167. +--------------+
  1168. | LDAP ROUTING |
  1169. +--------------+
  1170. FEATURE(`ldap_routing') can be used to implement the IETF Internet Draft
  1171. LDAP Schema for Intranet Mail Routing
  1172. (draft-lachman-laser-ldap-mail-routing-01).  This feature enables
  1173. LDAP-based rerouting of a particular address to either a different host
  1174. or a different address.  The LDAP lookup is first attempted on the full
  1175. address (e.g., user@example.com) and then on the domain portion
  1176. (e.g., @example.com).  Be sure to setup your domain for LDAP routing using
  1177. LDAPROUTE_DOMAIN(), e.g.:
  1178. LDAPROUTE_DOMAIN(`example.com')
  1179. By default, the feature will use the schemas as specified in the draft
  1180. and will not reject addresses not found by the LDAP lookup.  However,
  1181. this behavior can be changed by giving additional arguments to the FEATURE()
  1182. command:
  1183. FEATURE(`ldap_routing', <mailHost>, <mailRoutingAddress>, <bounce>)
  1184. where <mailHost> is a map definition describing how to lookup an alternative
  1185. mail host for a particular address; <mailRoutingAddress> is a map definition
  1186. describing how to lookup an alternative address for a particular address; and
  1187. the <bounce> argument, if present and not empty, dictates that mail should
  1188. be bounced if neither a mailHost nor mailRoutingAddress is found.
  1189. The default <mailHost> map definition is:
  1190. ldap -1 -v mailHost -k (&(objectClass=inetLocalMailRecipient)
  1191.  (mailLocalAddress=%0))
  1192. The default <mailRoutingAddress> map definition is:
  1193. ldap -1 -v mailRoutingAddress -k (&(objectClass=inetLocalMailRecipient)
  1194.    (mailLocalAddress=%0))
  1195. Note that neither includes the LDAP server hostname (-h server) or base DN
  1196. (-b o=org,c=COUNTRY), both necessary for LDAP queries.  It is presumed that
  1197. your .mc file contains a setting for the confLDAP_DEFAULT_SPEC option with
  1198. these settings.  If this is not the case, the map definitions should be
  1199. changed as described above.
  1200. The following possibilities exist as a result of an LDAP lookup on an
  1201. address:
  1202. mailHost is mailRoutingAddress is Results in
  1203. ----------- --------------------- ----------
  1204. set to a set mail delivered to
  1205. "local" host mailRoutingAddress
  1206. set to a not set delivered to
  1207. "local" host original address
  1208. set to a set mailRoutingAddress
  1209. remote host relayed to mailHost
  1210. set to a not set original address
  1211. remote host relayed to mailHost
  1212. not set set mail delivered to
  1213. mailRoutingAddress
  1214. not set not set delivered to
  1215. original address *OR*
  1216. bounced as unknown user
  1217. The term "local" host above means the host specified is in class 'w' ($=w).
  1218. Note that the last case depends on whether the third argument is given
  1219. to the FEATURE() command.  The default is to deliver the message to the
  1220. original address.
  1221. The LDAP entries should be set up with an objectClass of
  1222. inetLocalMailRecipient and the address be listed in a mailLocalAddress
  1223. attribute.  If present, there must be only one mailHost attribute and it
  1224. must contain a fully qualified host name as its value.  Similarly, if
  1225. present, there must be only one mailHost attribute and it must contain an
  1226. RFC822 compliant address.  Some example LDAP records (in ldif format):
  1227. dn: uid=tom, o=example.com, c=US
  1228. objectClass: inetLocalMailRecipient
  1229. mailLocalAddress: tom@example.com
  1230. mailRoutingAddress: thomas@mailhost.example.com
  1231. This would deliver mail for tom@example.com to thomas@mailhost.example.com.
  1232. dn: uid=dick, o=example.com, c=US
  1233. objectClass: inetLocalMailRecipient
  1234. mailLocalAddress: dick@example.com
  1235. mailHost: eng.example.com
  1236. This would relay mail for dick@example.com to the same address but redirect
  1237. the mail to MX records listed for the host eng.example.com.
  1238. dn: uid=harry, o=example.com, c=US
  1239. objectClass: inetLocalMailRecipient
  1240. mailLocalAddress: harry@example.com
  1241. mailHost: mktmail.example.com
  1242. mailRoutingAddress: harry@mkt.example.com
  1243. This would relay mail for harry@example.com to the MX records listed for
  1244. the host mktmail.example.com using the new address harry@mkt.example.com
  1245. when talking to that host.
  1246. dn: uid=virtual.example.com, o=example.com, c=US
  1247. objectClass: inetLocalMailRecipient
  1248. mailLocalAddress: @virtual.example.com
  1249. mailHost: server.example.com
  1250. mailRoutingAddress: virtual@example.com
  1251. This would send all mail destined for any username @virtual.example.com to
  1252. the machine server.example.com's MX servers and deliver to the address
  1253. virtual@example.com on that relay machine.
  1254. +---------------------------------+
  1255. | ANTI-SPAM CONFIGURATION CONTROL |
  1256. +---------------------------------+
  1257. The primary anti-spam features available in sendmail are:
  1258. * Relaying is denied by default.
  1259. * Better checking on sender information.
  1260. * Access database.
  1261. * Header checks.
  1262. Relaying (transmission of messages from a site outside your domain to
  1263. another site outside your domain) is denied by default.  Note that
  1264. this changed in sendmail 8.9; previous versions allowed relaying by
  1265. default.  If you want to revert to the old behaviour, you will need
  1266. to use FEATURE(`promiscuous_relay').  You can allow certain domains to
  1267. relay through your server by adding their domain name or IP address to
  1268. class 'R' ($=R) using RELAY_DOMAIN() and RELAY_DOMAIN_FILE() or via the
  1269. access database (described below).
  1270. If you use
  1271. FEATURE(`relay_entire_domain')
  1272. then any host in any of your local domains (that is, the $=m class)
  1273. will be relayed (that is, you will accept mail either to or from any
  1274. host in your domain).
  1275. You can also allow relaying based on the MX records of the host
  1276. portion of an incoming recipient address by using
  1277. FEATURE(`relay_based_on_MX')
  1278. For example, if your server receives a recipient of user@domain.com
  1279. and domain.com lists your server in its MX records, the mail will be
  1280. accepted for relay to domain.com.  Note that this will stop spammers
  1281. from using your host to relay spam but it will not stop outsiders from
  1282. using your server as a relay for their site (that is, they set up an
  1283. MX record pointing to your mail server, and you will relay mail addressed
  1284. to them without any prior arrangement).  Along the same lines,
  1285. FEATURE(`relay_local_from')
  1286. will allow relaying if the sender specifies a return path (i.e.
  1287. MAIL FROM: <user@domain>) domain which is a local domain.  This a
  1288. dangerous feature as it will allow spammers to spam using your mail
  1289. server by simply specifying a return address of user@your.domain.com.
  1290. It should not be used unless absolutely necessary.
  1291. A slightly better solution is
  1292. FEATURE(`relay_mail_from')
  1293. which allows relaying if the mail sender is listed as RELAY in the
  1294. access map.  If an optional argument `domain' is given, the domain
  1295. portion of the mail sender is also checked to allowing relaying.
  1296. This option only works together with the tag From: for the LHS of
  1297. the access map entries (see below: Finer control...).
  1298. If source routing is used in the recipient address (i.e.
  1299. RCPT TO: <user%site.com@othersite.com>), sendmail will check
  1300. user@site.com for relaying if othersite.com is an allowed relay host
  1301. in either class 'R', class 'm' if FEATURE(`relay_entire_domain') is used,
  1302. or the access database if FEATURE(`access_db') is used.  To prevent
  1303. the address from being stripped down, use:
  1304. FEATURE(`loose_relay_check')
  1305. If you think you need to use this feature, you probably do not.  This
  1306. should only be used for sites which have no control over the addresses
  1307. that they provide a gateway for.  Use this FEATURE with caution as it
  1308. can allow spammers to relay through your server if not setup properly.
  1309. NOTICE: It is possible to relay mail through a system which the anti-relay
  1310. rules do not prevent: the case of a system that does use FEATURE(`nouucp',
  1311. `nospecial') (system A) and relays local messages to a mail hub (e.g., via
  1312. LOCAL_RELAY or LUSER_RELAY) (system B).  If system B doesn't use
  1313. FEATURE(`nouucp') at all, addresses of the form
  1314. <example.net!user@local.host> would be relayed to <user@example.net>.
  1315. System A doesn't recognize `!' as an address separator and therefore
  1316. forwards it to the mail hub which in turns relays it because it came from
  1317. a trusted local host.  So if a mailserver allows UUCP (bang-format)
  1318. addresses, all systems from which it allows relaying should do the same
  1319. or reject those addresses.
  1320. As of 8.9, sendmail will refuse mail if the MAIL FROM: parameter has
  1321. an unresolvable domain (i.e., one that DNS, your local name service,
  1322. or special case rules in ruleset 3 cannot locate).  If you want to
  1323. continue to accept such domains, e.g., because you are inside a
  1324. firewall that has only a limited view of the Internet host name space
  1325. (note that you will not be able to return mail to them unless you have
  1326. some "smart host" forwarder), use
  1327. FEATURE(`accept_unresolvable_domains')
  1328. sendmail will also refuse mail if the MAIL FROM: parameter is not
  1329. fully qualified (i.e., contains a domain as well as a user).  If you
  1330. want to continue to accept such senders, use
  1331. FEATURE(`accept_unqualified_senders')
  1332. Setting the DaemonPortOptions modifier 'u' overrides the default behavior,
  1333. i.e., unqualified addresses are accepted even without this FEATURE.  If
  1334. this FEATURE is not used, the DaemonPortOptions modifier 'f' can be used
  1335. to enforce fully qualified addresses.
  1336. An ``access'' database can be created to accept or reject mail from
  1337. selected domains.  For example, you may choose to reject all mail
  1338. originating from known spammers.  To enable such a database, use
  1339. FEATURE(`access_db')
  1340. The FEATURE macro can accept a second parameter giving the key file
  1341. definition for the database; for example
  1342. FEATURE(`access_db', `hash /etc/mail/access')
  1343. Remember, since /etc/mail/access is a database, after creating the text
  1344. file as described below, you must use makemap to create the database
  1345. map.  For example:
  1346. makemap hash /etc/mail/access < /etc/mail/access
  1347. The table itself uses e-mail addresses, domain names, and network
  1348. numbers as keys.  For example,
  1349. spammer@aol.com REJECT
  1350. cyberspammer.com REJECT
  1351. 192.168.212 REJECT
  1352. would refuse mail from spammer@aol.com, any user from cyberspammer.com
  1353. (or any host within the cyberspammer.com domain), and any host on the
  1354. 192.168.212.* network.
  1355. The value part of the map can contain:
  1356. OK Accept mail even if other rules in the
  1357. running ruleset would reject it, for example,
  1358. if the domain name is unresolvable.
  1359. RELAY Accept mail addressed to the indicated domain or
  1360. received from the indicated domain for relaying
  1361. through your SMTP server.  RELAY also serves as
  1362. an implicit OK for the other checks.
  1363. REJECT Reject the sender or recipient with a general
  1364. purpose message.
  1365. DISCARD Discard the message completely using the
  1366. $#discard mailer.  For sender addresses it
  1367. indicates that you should discard anything
  1368. received from the indicated domain.  If it
  1369. is used for recipients, it affects only
  1370. the designated recipients, not the whole
  1371. message.
  1372. ### any text where ### is an RFC 821 compliant error code
  1373. and "any text" is a message to return for
  1374. the command.
  1375. ERROR:### any text
  1376. as above, but useful to mark error messages as such.
  1377. ERROR:D.S.N:### any text
  1378. where D.S.N is an RFC 1893 compliant error code
  1379. and the rest as above.
  1380. For example:
  1381. cyberspammer.com 550 We don't accept mail from spammers
  1382. okay.cyberspammer.com OK
  1383. sendmail.org RELAY
  1384. 128.32 RELAY
  1385. 1:2:3:4:5:6:7 RELAY
  1386. [127.0.0.3] OK
  1387. [1:2:3:4:5:6:7:8] OK
  1388. would accept mail from okay.cyberspammer.com, but would reject mail from
  1389. all other hosts at cyberspammer.com with the indicated message.  It would
  1390. allow relaying mail from and to any hosts in the sendmail.org domain, and
  1391. allow relaying from the 128.32.*.* network and the IPv6 1:2:3:4:5:6:7:*
  1392. network.  The latter two entries are for checks against ${client_name} if
  1393. the IP address doesn't resolve to a hostname (or is considered as "may be
  1394. forged").
  1395. Warning: if you change the RFC 821 compliant error code from the default
  1396. value of 550, then you should probably also change the RFC 1893 compliant
  1397. error code to match it.  For example, if you use
  1398. user@example.com 450 mailbox full
  1399. the error returned would be "450 4.0.0 mailbox full" which is wrong.
  1400. Use "450 4.2.2 mailbox full" or "ERROR:4.2.2:450 mailbox full"
  1401. instead.
  1402. Note, UUCP users may need to add hostname.UUCP to the access database
  1403. or class 'R' ($=R).  If you also use:
  1404. FEATURE(`relay_hosts_only')
  1405. then the above example will allow relaying for sendmail.org, but not
  1406. hosts within the sendmail.org domain.  Note that this will also require
  1407. hosts listed in class 'R' ($=R) to be fully qualified host names.
  1408. You can also use the access database to block sender addresses based on
  1409. the username portion of the address.  For example:
  1410. FREE.STEALTH.MAILER@ 550 Spam not accepted
  1411. Note that you must include the @ after the username to signify that
  1412. this database entry is for checking only the username portion of the
  1413. sender address.
  1414. If you use:
  1415. FEATURE(`blacklist_recipients')
  1416. then you can add entries to the map for local users, hosts in your
  1417. domains, or addresses in your domain which should not receive mail:
  1418. badlocaluser@ 550 Mailbox disabled for this username
  1419. host.mydomain.com 550 That host does not accept mail
  1420. user@otherhost.mydomain.com 550 Mailbox disabled for this recipient
  1421. This would prevent a recipient of badlocaluser@mydomain.com, any
  1422. user at host.mydomain.com, and the single address
  1423. user@otherhost.mydomain.com from receiving mail.  Please note: a
  1424. local username must be now tagged with an @ (this is consistent
  1425. with the check of the sender address, and hence it is possible to
  1426. distinguish between hostnames and usernames).  Enabling this feature
  1427. will keep you from sending mails to all addresses that have an
  1428. error message or REJECT as value part in the access map.  Taking
  1429. the example from above:
  1430. spammer@aol.com REJECT
  1431. cyberspammer.com REJECT
  1432. Mail can't be sent to spammer@aol.com or anyone at cyberspammer.com.
  1433. There is also a ``Realtime Blackhole List'' run by the MAPS project
  1434. at http://maps.vix.com/.  This is a database maintained in DNS of
  1435. spammers.  To use this database, use
  1436. FEATURE(`dnsbl')
  1437. This will cause sendmail to reject mail from any site in the
  1438. Realtime Blackhole List database.  You can specify an alternative
  1439. RBL name server to contact by specifying an argument to the FEATURE.
  1440. A second argument can be used to change the default error message
  1441. Mail from $&{client_addr} refused by blackhole site SERVER
  1442. where SERVER is replaced by the first argument.  This FEATURE can
  1443. be included several times to query different DNS based rejection
  1444. lists, e.g., the dial-up user list (see http://maps.vix.com/dul/).
  1445. The features described above make use of the check_relay, check_mail,
  1446. and check_rcpt rulesets.  If you wish to include your own checks,
  1447. you can put your checks in the rulesets Local_check_relay,
  1448. Local_check_mail, and Local_check_rcpt.  For example if you wanted to
  1449. block senders with all numeric usernames (i.e. 2312343@bigisp.com),
  1450. you would use Local_check_mail and the new regex map:
  1451. LOCAL_CONFIG
  1452. Kallnumbers regex -a@MATCH ^[0-9]+$
  1453. LOCAL_RULESETS
  1454. SLocal_check_mail
  1455. # check address against various regex checks
  1456. R$* $: $>Parse0 $>3 $1
  1457. R$+ < @ bigisp.com. > $* $: $(allnumbers $1 $)
  1458. R@MATCH $#error $: 553 Header Error
  1459. These rules are called with the original arguments of the corresponding
  1460. check_* ruleset.  If the local ruleset returns $#OK, no further checking
  1461. is done by the features described above and the mail is accepted.  If the
  1462. local ruleset resolves to a mailer (such as $#error or $#discard), the
  1463. appropriate action is taken.  Otherwise, the results of the local
  1464. rewriting are ignored.
  1465. Finer control by using tags for the LHS of the access map
  1466. Read this section only if the options listed so far are not sufficient
  1467. for your purposes.  There is now the option to tag entries in the
  1468. access map according to their type.  Three tags are available:
  1469. Connect: connection information (${client_addr}, ${client_name})
  1470. From: sender
  1471. To: recipient
  1472. If the required item is looked up in a map, it will be tried first
  1473. with the corresponding tag in front, then (as fallback to enable
  1474. backward compatibility) without any tag.  For example,
  1475. From:spammer@some.dom REJECT
  1476. To:friend.domain RELAY
  1477. Connect:friend.domain OK
  1478. Connect:from.domain RELAY
  1479. From:good@another.dom OK
  1480. From:another.dom REJECT
  1481. This would deny mails from spammer@some.dom but you could still
  1482. send mail to that address even if FEATURE(`blacklist_recipients')
  1483. is enabled.  Your system will allow relaying to friend.domain, but
  1484. not from it (unless enabled by other means).  Connections from that
  1485. domain will be allowed even if it ends up in one of the DNS based
  1486. rejection lists.  Relaying is enabled from from.domain but not to
  1487. it (since relaying is based on the connection information for
  1488. outgoing relaying, the tag Connect: must be used; for incoming
  1489. relaying, which is based on the recipient address, To: must be
  1490. used).  The last two entries allow mails from good@another.dom but
  1491. reject mail from all other addresses with another.dom as domain
  1492. part.
  1493. Delay all checks
  1494. By using FEATURE(`delay_checks') the rulesets check_mail and check_relay
  1495. will not be called when a client connects or issues a MAIL command,
  1496. respectively.  Instead, those rulesets will be called by the check_rcpt
  1497. ruleset.  Moreover, an argument can be specified for this option:
  1498. friend: enable spamfriend test
  1499. hater: enable spamhater test
  1500. If such an argument is given, the recipient will be looked up in the
  1501. access map (using the tag To:).  The other rulesets will be skipped
  1502. if:
  1503. friend: recipient is found and has RHS spamfriend
  1504. hater: recipient is not found or has RHS spamhater
  1505. This allows for simple exceptions from the tests, e.g., by activating
  1506. the spamfriend option and having
  1507. To:abuse@ SPAMFRIEND
  1508. in the access map, mail to abuse@localdomain will get through.  It is
  1509. also possible to specify a full address or an address with +detail:
  1510. To:abuse@abuse.my.domain SPAMFRIEND
  1511. To:me+abuse@ SPAMFRIEND
  1512. Header Checks
  1513. You can also reject mail on the basis of the contents of headers.
  1514. This is done by adding a ruleset call to the 'H' header definition command
  1515. in sendmail.cf.  For example, this can be used to check the validity of
  1516. a Message-ID: header:
  1517. LOCAL_RULESETS
  1518. HMessage-Id: $>CheckMessageId
  1519. SCheckMessageId
  1520. R< $+ @ $+ > $@ OK
  1521. R$* $#error $: 553 Header Error
  1522. The alternative format:
  1523. HSubject: $>+CheckSubject
  1524. that is, $>+ instead of $>, gives the full Subject: header including
  1525. comments to the ruleset (comments in parentheses () are stripped
  1526. by default).
  1527. A default ruleset for headers which don't have a specific ruleset
  1528. defined for them can be given by:
  1529. H*: $>CheckHdr
  1530. After all of the headers are read, the check_eoh ruleset will be called for
  1531. any final header-related checks.  The ruleset is called with the number of
  1532. headers and the size of all of the headers in bytes separated by $|.  One
  1533. example usage is to reject messages which do not have a Message-Id:
  1534. header.  However, the Message-Id: header is *NOT* a required header and is
  1535. not a guaranteed spam indicator.  This ruleset is an example and should
  1536. probably not be used in production.
  1537. LOCAL_CONFIG
  1538. Kstorage macro
  1539. LOCAL_RULESETS
  1540. HMessage-Id: $>CheckMessageId
  1541. SCheckMessageId
  1542. # Record the presence of the header
  1543. R$* $: $(storage {MessageIdCheck} $@ OK $) $1
  1544. R< $+ @ $+ > $@ OK
  1545. R$* $#error $: 553 Header Error
  1546. Scheck_eoh
  1547. # Check the macro
  1548. R$* $: < $&{MessageIdCheck} >
  1549. # Clear the macro for the next message
  1550. R$* $: $(storage {MessageIdCheck} $) $1
  1551. # Has a Message-Id: header
  1552. R< $+ > $@ OK
  1553. # Allow missing Message-Id: from local mail
  1554. R$* $: < $&{client_name} >
  1555. R< > $@ OK
  1556. R< $=w > $@ OK
  1557. # Otherwise, reject the mail
  1558. R$* $#error $: 553 Header Error
  1559. +--------------------------------+
  1560. | SMTP AUTHENTICATION            |
  1561. +--------------------------------+
  1562. The macros ${auth_authen}, ${auth_author}, and ${auth_type} can be
  1563. used in anti-relay rulesets to allow relaying for those users that
  1564. authenticated themselves.  A very simple example is:
  1565. SLocal_check_rcpt
  1566. R$* $: $&{auth_type}
  1567. R$+ $# OK
  1568. which checks whether a user has successfully authenticated using
  1569. any available mechanism.  Depending on the setup of the CYRUS SASL 
  1570. library, more sophisticated rulesets might be required, e.g.,
  1571. SLocal_check_rcpt
  1572. R$* $: $&{auth_type} $| $&{auth_authen}
  1573. RDIGEST-MD5 $| $+@$=w $# OK
  1574. to allow relaying for users that authenticated using DIGEST-MD5
  1575. and have an identity in the local domains.
  1576. The ruleset Strust_auth is used to determine whether a given AUTH=
  1577. parameter (that is passed to this ruleset) should be trusted.  This
  1578. ruleset may make use of the other ${auth_*} macros.  Only if the
  1579. ruleset resolves to the error mailer, the AUTH= parameter is not
  1580. trusted.  A user supplied ruleset Local_trust_auth can be written
  1581. to modify the default behavior, which only trust the AUTH=
  1582. parameter if it is identical to the authenticated user.
  1583. Per default, relaying is allowed for any user who authenticated
  1584. via a "trusted" mechanism, i.e., one that is defined via
  1585. TRUST_AUTH_MECH(`list of mechanisms')
  1586. +--------------------------------+
  1587. | ADDING NEW MAILERS OR RULESETS |
  1588. +--------------------------------+
  1589. Sometimes you may need to add entirely new mailers or rulesets.  They
  1590. should be introduced with the constructs MAILER_DEFINITIONS and
  1591. LOCAL_RULESETS respectively.  For example:
  1592. MAILER_DEFINITIONS
  1593. Mmymailer, ...
  1594. ...
  1595. LOCAL_RULESETS
  1596. Smyruleset
  1597. ...
  1598. +-------------------------------+
  1599. | NON-SMTP BASED CONFIGURATIONS |
  1600. +-------------------------------+
  1601. These configuration files are designed primarily for use by
  1602. SMTP-based sites.  They may not be well tuned for UUCP-only or
  1603. UUCP-primarily nodes (the latter is defined as a small local net
  1604. connected to the rest of the world via UUCP).  However, there is
  1605. one hook to handle some special cases.
  1606. You can define a ``smart host'' that understands a richer address syntax
  1607. using:
  1608. define(`SMART_HOST', `mailer:hostname')
  1609. In this case, the ``mailer:'' defaults to "relay".  Any messages that
  1610. can't be handled using the usual UUCP rules are passed to this host.
  1611. If you are on a local SMTP-based net that connects to the outside
  1612. world via UUCP, you can use LOCAL_NET_CONFIG to add appropriate rules.
  1613. For example:
  1614. define(`SMART_HOST', `uucp-new:uunet')
  1615. LOCAL_NET_CONFIG
  1616. R$* < @ $* .$m. > $* $#smtp $@ $2.$m. $: $1 < @ $2.$m. > $3
  1617. This will cause all names that end in your domain name ($m) via
  1618. SMTP; anything else will be sent via uucp-new (smart UUCP) to uunet.
  1619. If you have FEATURE(`nocanonify'), you may need to omit the dots after
  1620. the $m.  If you are running a local DNS inside your domain which is
  1621. not otherwise connected to the outside world, you probably want to
  1622. use:
  1623. define(`SMART_HOST', `smtp:fire.wall.com')
  1624. LOCAL_NET_CONFIG
  1625. R$* < @ $* . > $* $#smtp $@ $2. $: $1 < @ $2. > $3
  1626. That is, send directly only to things you found in your DNS lookup;
  1627. anything else goes through SMART_HOST.
  1628. You may need to turn off the anti-spam rules in order to accept
  1629. UUCP mail with FEATURE(`promiscuous_relay') and
  1630. FEATURE(`accept_unresolvable_domains').
  1631. +-----------+
  1632. | WHO AM I? |
  1633. +-----------+
  1634. Normally, the $j macro is automatically defined to be your fully
  1635. qualified domain name (FQDN).  Sendmail does this by getting your
  1636. host name using gethostname and then calling gethostbyname on the
  1637. result.  For example, in some environments gethostname returns
  1638. only the root of the host name (such as "foo"); gethostbyname is
  1639. supposed to return the FQDN ("foo.bar.com").  In some (fairly rare)
  1640. cases, gethostbyname may fail to return the FQDN.  In this case
  1641. you MUST define confDOMAIN_NAME to be your fully qualified domain
  1642. name.  This is usually done using:
  1643. Dmbar.com
  1644. define(`confDOMAIN_NAME', `$w.$m')dnl
  1645. +--------------------+
  1646. | USING MAILERTABLES |
  1647. +--------------------+
  1648. To use FEATURE(`mailertable'), you will have to create an external
  1649. database containing the routing information for various domains.
  1650. For example, a mailertable file in text format might be:
  1651. .my.domain xnet:%1.my.domain
  1652. uuhost1.my.domain uucp-new:uuhost1
  1653. .bitnet smtp:relay.bit.net
  1654. This should normally be stored in /etc/mail/mailertable.  The actual
  1655. database version of the mailertable is built using:
  1656. makemap hash /etc/mail/mailertable < /etc/mail/mailertable
  1657. The semantics are simple.  Any LHS entry that does not begin with
  1658. a dot matches the full host name indicated.  LHS entries beginning
  1659. with a dot match anything ending with that domain name -- that is,
  1660. they can be thought of as having a leading "*" wildcard.  Matching
  1661. is done in order of most-to-least qualified -- for example, even
  1662. though ".my.domain" is listed first in the above example, an entry
  1663. of "uuhost1.my.domain" will match the second entry since it is
  1664. more explicit.
  1665. The RHS should always be a "mailer:host" pair.  The mailer is the
  1666. configuration name of a mailer (that is, an `M' line in the
  1667. sendmail.cf file).  The "host" will be the hostname passed to
  1668. that mailer.  In domain-based matches (that is, those with leading
  1669. dots) the "%1" may be used to interpolate the wildcarded part of
  1670. the host name.  For example, the first line above sends everything
  1671. addressed to "anything.my.domain" to that same host name, but using
  1672. the (presumably experimental) xnet mailer.
  1673. In some cases you may want to temporarily turn off MX records,
  1674. particularly on gateways.  For example, you may want to MX
  1675. everything in a domain to one machine that then forwards it
  1676. directly.  To do this, you might use the DNS configuration:
  1677. *.domain. IN MX 0 relay.machine
  1678. and on relay.machine use the mailertable:
  1679. .domain smtp:[gateway.domain]
  1680. The [square brackets] turn off MX records for this host only.
  1681. If you didn't do this, the mailertable would use the MX record
  1682. again, which would give you an MX loop.
  1683. +--------------------------------+
  1684. | USING USERDB TO MAP FULL NAMES |
  1685. +--------------------------------+
  1686. The user database was not originally intended for mapping full names
  1687. to login names (e.g., Eric.Allman => eric), but some people are using
  1688. it that way.  (it is recommended that you set up aliases for this
  1689. purpose instead -- since you can specify multiple alias files, this
  1690. is fairly easy.)  The intent was to locate the default maildrop at
  1691. a site, but allow you to override this by sending to a specific host.
  1692. If you decide to set up the user database in this fashion, it is
  1693. imperative that you not use FEATURE(`stickyhost') -- otherwise,
  1694. e-mail sent to Full.Name@local.host.name will be rejected.
  1695. To build the internal form of the user database, use:
  1696. makemap btree /etc/mail/userdb < /etc/mail/userdb.txt
  1697. As a general rule, it is an extremely bad idea to using full names
  1698. as e-mail addresses, since they are not in any sense unique.  For
  1699. example, the Unix software-development community has at least two
  1700. well-known Peter Deutsches, and at one time Bell Labs had two
  1701. Stephen R. Bournes with offices along the same hallway.  Which one
  1702. will be forced to suffer the indignity of being Stephen_R_Bourne_2?
  1703. The less famous of the two, or the one that was hired later?
  1704. Finger should handle full names (and be fuzzy).  Mail should use
  1705. handles, and not be fuzzy.
  1706. +--------------------------------+
  1707. | MISCELLANEOUS SPECIAL FEATURES |
  1708. +--------------------------------+
  1709. Plussed users
  1710. Sometimes it is convenient to merge configuration on a
  1711. centralized mail machine, for example, to forward all
  1712. root mail to a mail server.  In this case it might be
  1713. useful to be able to treat the root addresses as a class
  1714. of addresses with subtle differences.  You can do this
  1715. using plussed users.  For example, a client might include
  1716. the alias:
  1717. root:  root+client1@server
  1718. On the server, this will match an alias for "root+client1".
  1719. If that is not found, the alias "root+*" will be tried,
  1720. then "root".
  1721. +----------------+
  1722. | SECURITY NOTES |
  1723. +----------------+
  1724. A lot of sendmail security comes down to you.  Sendmail 8 is much
  1725. more careful about checking for security problems than previous
  1726. versions, but there are some things that you still need to watch
  1727. for.  In particular:
  1728. * Make sure the aliases file isn't writable except by trusted
  1729.   system personnel.  This includes both the text and database
  1730.   version.
  1731. * Make sure that other files that sendmail reads, such as the
  1732.   mailertable, are only writable by trusted system personnel.
  1733. * The queue directory should not be world writable PARTICULARLY
  1734.   if your system allows "file giveaways" (that is, if a non-root
  1735.   user can chown any file they own to any other user).
  1736. * If your system allows file giveaways, DO NOT create a publically
  1737.   writable directory for forward files.  This will allow anyone
  1738.   to steal anyone else's e-mail.  Instead, create a script that
  1739.   copies the .forward file from users' home directories once a
  1740.   night (if you want the non-NFS-mounted forward directory).
  1741. * If your system allows file giveaways, you'll find that
  1742.   sendmail is much less trusting of :include: files -- in
  1743.   particular, you'll have to have /SENDMAIL/ANY/SHELL/ in
  1744.   /etc/shells before they will be trusted (that is, before
  1745.   files and programs listed in them will be honored).
  1746. In general, file giveaways are a mistake -- if you can turn them
  1747. off, do so.
  1748. +--------------------------------+
  1749. | TWEAKING CONFIGURATION OPTIONS |
  1750. +--------------------------------+
  1751. There are a large number of configuration options that don't normally
  1752. need to be changed.  However, if you feel you need to tweak them, you
  1753. can define the following M4 variables.  This list is shown in four
  1754. columns:  the name you define, the default value for that definition,
  1755. the option or macro that is affected (either Ox for an option or Dx
  1756. for a macro), and a brief description.  Greater detail of the semantics
  1757. can be found in the Installation and Operations Guide.
  1758. Some options are likely to be deprecated in future versions -- that is,
  1759. the option is only included to provide back-compatibility.  These are
  1760. marked with "*".
  1761. Remember that these options are M4 variables, and hence may need to
  1762. be quoted.  In particular, arguments with commas will usually have to
  1763. be ``double quoted, like this phrase'' to avoid having the comma
  1764. confuse things.  This is common for alias file definitions and for
  1765. the read timeout.
  1766. M4 Variable Name Configuration Description & [Default]
  1767. ================ ============= =======================
  1768. confMAILER_NAME $n macro [MAILER-DAEMON] The sender name used
  1769. for internally generated outgoing
  1770. messages.
  1771. confDOMAIN_NAME $j macro If defined, sets $j.  This should
  1772. only be done if your system cannot
  1773. determine your local domain name,
  1774. and then it should be set to
  1775. $w.Foo.COM, where Foo.COM is your
  1776. domain name.
  1777. confCF_VERSION $Z macro If defined, this is appended to the
  1778. configuration version name.
  1779. confFROM_HEADER From: [$?x$x <$g>$|$g$.] The format of an
  1780. internally generated From: address.
  1781. confRECEIVED_HEADER Received:
  1782. [$?sfrom $s $.$?_($?s$|from $.$_)
  1783. $.$?{auth_type}(authenticated as ${auth_authen} $?{auth_author}for ${auth_author} $.with ${auth_type})
  1784. $.by $j ($v/$Z)$?r with $r$. id $i$?u
  1785. for $u; $|;
  1786. $.$b]
  1787. The format of the Received: header
  1788. in messages passed through this host.
  1789. It is unwise to try to change this.
  1790. confCW_FILE Fw class [/etc/mail/local-host-names] Name
  1791. of file used to get the local
  1792. additions to the $=w (local host
  1793. names) class.
  1794. confCT_FILE Ft class [/etc/mail/trusted-users] Name of
  1795. file used to get the local
  1796. additions to the $=t (trusted
  1797. users) class.
  1798. confCR_FILE FR class [/etc/mail/relay-domains] Name of
  1799. file used to get the local additions
  1800. to the $=R (hosts allowed to relay)
  1801. class.
  1802. confTRUSTED_USERS Ct class [no default] Names of users to add to
  1803. the list of trusted users.  This list
  1804. always includes root, uucp, and daemon.
  1805. See also FEATURE(`use_ct_file').
  1806. confTRUSTED_USER TrustedUser [no default] Trusted user for file
  1807. ownership and starting the daemon.
  1808. Not to be confused with
  1809. confTRUSTED_USERS (see above).
  1810. confSMTP_MAILER - [esmtp] The mailer name used when
  1811. SMTP connectivity is required.
  1812. One of "smtp", "smtp8",
  1813. "esmtp", or "dsmtp".
  1814. confUUCP_MAILER - [uucp-old] The mailer to be used by
  1815. default for bang-format recipient
  1816. addresses.  See also discussion of
  1817. $=U, $=Y, and $=Z in the MAILER(`uucp')
  1818. section.
  1819. confLOCAL_MAILER - [local] The mailer name used when
  1820. local connectivity is required.
  1821. Almost always "local".
  1822. confRELAY_MAILER - [relay] The default mailer name used
  1823. for relaying any mail (e.g., to a
  1824. BITNET_RELAY, a SMART_HOST, or
  1825. whatever).  This can reasonably be
  1826. "uucp-new" if you are on a
  1827. UUCP-connected site.
  1828. confSEVEN_BIT_INPUT SevenBitInput [False] Force input to seven bits?
  1829. confEIGHT_BIT_HANDLING EightBitMode [pass8] 8-bit data handling
  1830. confALIAS_WAIT AliasWait [10m] Time to wait for alias file
  1831. rebuild until you get bored and
  1832. decide that the apparently pending
  1833. rebuild failed.
  1834. confMIN_FREE_BLOCKS MinFreeBlocks [100] Minimum number of free blocks on
  1835. queue filesystem to accept SMTP mail.
  1836. (Prior to 8.7 this was minfree/maxsize,
  1837. where minfree was the number of free
  1838. blocks and maxsize was the maximum
  1839. message size.  Use confMAX_MESSAGE_SIZE
  1840. for the second value now.)
  1841. confMAX_MESSAGE_SIZE MaxMessageSize [infinite] The maximum size of messages
  1842. that will be accepted (in bytes).
  1843. confBLANK_SUB BlankSub [.] Blank (space) substitution
  1844. character.
  1845. confCON_EXPENSIVE HoldExpensive [False] Avoid connecting immediately
  1846. to mailers marked expensive.
  1847. confCHECKPOINT_INTERVAL CheckpointInterval
  1848. [10] Checkpoint queue files every N
  1849. recipients.
  1850. confDELIVERY_MODE DeliveryMode [background] Default delivery mode.
  1851. confAUTO_REBUILD AutoRebuildAliases
  1852. [False] Automatically rebuild alias
  1853. file if needed.
  1854. There is a potential for a denial
  1855. of service attack if this is set.
  1856. This option is deprecated and will
  1857. be removed from a future version.
  1858. confERROR_MODE ErrorMode [print] Error message mode.
  1859. confERROR_MESSAGE ErrorHeader [undefined] Error message header/file.
  1860. confSAVE_FROM_LINES SaveFromLine Save extra leading From_ lines.
  1861. confTEMP_FILE_MODE TempFileMode [0600] Temporary file mode.
  1862. confMATCH_GECOS MatchGECOS [False] Match GECOS field.
  1863. confMAX_HOP MaxHopCount [25] Maximum hop count.
  1864. confIGNORE_DOTS* IgnoreDots [False; always False in -bs or -bd
  1865. mode] Ignore dot as terminator for
  1866. incoming messages?
  1867. confBIND_OPTS ResolverOptions [undefined] Default options for DNS
  1868. resolver.
  1869. confMIME_FORMAT_ERRORS* SendMimeErrors [True] Send error messages as MIME-
  1870. encapsulated messages per RFC 1344.
  1871. confFORWARD_PATH ForwardPath [$z/.forward.$w:$z/.forward]
  1872. The colon-separated list of places to
  1873. search for .forward files.  N.B.: see
  1874. the Security Notes section.
  1875. confMCI_CACHE_SIZE ConnectionCacheSize
  1876. [2] Size of open connection cache.
  1877. confMCI_CACHE_TIMEOUT ConnectionCacheTimeout
  1878. [5m] Open connection cache timeout.
  1879. confHOST_STATUS_DIRECTORY HostStatusDirectory
  1880. [undefined] If set, host status is kept
  1881. on disk between sendmail runs in the
  1882. named directory tree.  This need not be
  1883. a full pathname, in which case it is
  1884. interpreted relative to the queue
  1885. directory.
  1886. confSINGLE_THREAD_DELIVERY  SingleThreadDelivery
  1887. [False] If this option and the
  1888. HostStatusDirectory option are both
  1889. set, single thread deliveries to other
  1890. hosts.  That is, don't allow any two
  1891. sendmails on this host to connect
  1892. simultaneously to any other single
  1893. host.  This can slow down delivery in
  1894. some cases, in particular since a
  1895. cached but otherwise idle connection
  1896. to a host will prevent other sendmails
  1897. from connecting to the other host.
  1898. confUSE_ERRORS_TO* UseErrorsTo [False] Use the Errors-To: header to
  1899. deliver error messages.  This should
  1900. not be necessary because of general
  1901. acceptance of the envelope/header
  1902. distinction.
  1903. confLOG_LEVEL LogLevel [9] Log level.
  1904. confME_TOO MeToo [True] Include sender in group
  1905. expansions.
  1906. confCHECK_ALIASES CheckAliases [False] Check RHS of aliases when
  1907. running newaliases.  Since this does
  1908. DNS lookups on every address, it can
  1909. slow down the alias rebuild process
  1910. considerably on large alias files.
  1911. confOLD_STYLE_HEADERS* OldStyleHeaders [True] Assume that headers without
  1912. special chars are old style.
  1913. confCLIENT_OPTIONS ClientPortOptions
  1914. [none] Options for outgoing SMTP client
  1915. connections.
  1916. confPRIVACY_FLAGS PrivacyOptions [authwarnings] Privacy flags.
  1917. confCOPY_ERRORS_TO PostmasterCopy [undefined] Address for additional
  1918. copies of all error messages.
  1919. confQUEUE_FACTOR QueueFactor [600000] Slope of queue-only function.
  1920. confDONT_PRUNE_ROUTES DontPruneRoutes [False] Don't prune down route-addr
  1921. syntax addresses to the minimum
  1922. possible.
  1923. confSAFE_QUEUE* SuperSafe [True] Commit all messages to disk
  1924. before forking.
  1925. confTO_INITIAL Timeout.initial [5m] The timeout waiting for a response
  1926. on the initial connect.
  1927. confTO_CONNECT Timeout.connect [0] The timeout waiting for an initial
  1928. connect() to complete.  This can only
  1929. shorten connection timeouts; the kernel
  1930. silently enforces an absolute maximum
  1931. (which varies depending on the system).
  1932. confTO_ICONNECT Timeout.iconnect
  1933. [undefined] Like Timeout.connect, but
  1934. applies only to the very first attempt
  1935. to connect to a host in a message.
  1936. This allows a single very fast pass
  1937. followed by more careful delivery
  1938. attempts in the future.
  1939. confTO_HELO Timeout.helo [5m] The timeout waiting for a response
  1940. to a HELO or EHLO command.
  1941. confTO_MAIL Timeout.mail [10m] The timeout waiting for a
  1942. response to the MAIL command.
  1943. confTO_RCPT Timeout.rcpt [1h] The timeout waiting for a response
  1944. to the RCPT command.
  1945. confTO_DATAINIT Timeout.datainit
  1946. [5m] The timeout waiting for a 354
  1947. response from the DATA command.
  1948. confTO_DATABLOCK Timeout.datablock
  1949. [1h] The timeout waiting for a block
  1950. during DATA phase.
  1951. confTO_DATAFINAL Timeout.datafinal
  1952. [1h] The timeout waiting for a response
  1953. to the final "." that terminates a
  1954. message.
  1955. confTO_RSET Timeout.rset [5m] The timeout waiting for a response
  1956. to the RSET command.
  1957. confTO_QUIT Timeout.quit [2m] The timeout waiting for a response
  1958. to the QUIT command.
  1959. confTO_MISC Timeout.misc [2m] The timeout waiting for a response
  1960. to other SMTP commands.
  1961. confTO_COMMAND Timeout.command [1h] In server SMTP, the timeout
  1962. waiting for a command to be issued.
  1963. confTO_IDENT Timeout.ident [30s] The timeout waiting for a
  1964. response to an IDENT query.
  1965. confTO_FILEOPEN Timeout.fileopen
  1966. [60s] The timeout waiting for a file
  1967. (e.g., :include: file) to be opened.
  1968. confTO_CONTROL Timeout.control
  1969. [2m] The timeout for a complete
  1970. control socket transaction to complete.
  1971. confTO_QUEUERETURN Timeout.queuereturn
  1972. [5d] The timeout before a message is
  1973. returned as undeliverable.
  1974. confTO_QUEUERETURN_NORMAL
  1975. Timeout.queuereturn.normal
  1976. [undefined] As above, for normal
  1977. priority messages.
  1978. confTO_QUEUERETURN_URGENT
  1979. Timeout.queuereturn.urgent
  1980. [undefined] As above, for urgent
  1981. priority messages.
  1982. confTO_QUEUERETURN_NONURGENT
  1983. Timeout.queuereturn.non-urgent
  1984. [undefined] As above, for non-urgent
  1985. (low) priority messages.
  1986. confTO_QUEUEWARN Timeout.queuewarn
  1987. [4h] The timeout before a warning
  1988. message is sent to the sender telling
  1989. them that the message has been
  1990. deferred.
  1991. confTO_QUEUEWARN_NORMAL Timeout.queuewarn.normal
  1992. [undefined] As above, for normal
  1993. priority messages.
  1994. confTO_QUEUEWARN_URGENT Timeout.queuewarn.urgent
  1995. [undefined] As above, for urgent
  1996. priority messages.
  1997. confTO_QUEUEWARN_NONURGENT
  1998. Timeout.queuewarn.non-urgent
  1999. [undefined] As above, for non-urgent
  2000. (low) priority messages.
  2001. confTO_HOSTSTATUS Timeout.hoststatus
  2002. [30m] How long information about host
  2003. statuses will be maintained before it
  2004. is considered stale and the host should
  2005. be retried.  This applies both within
  2006. a single queue run and to persistent
  2007. information (see below).
  2008. confTO_RESOLVER_RETRANS Timeout.resolver.retrans
  2009. [varies] Sets the resolver's
  2010. retransmition time interval (in
  2011. seconds).  Sets both
  2012. Timeout.resolver.retrans.first and
  2013. Timeout.resolver.retrans.normal.
  2014. confTO_RESOLVER_RETRANS_FIRST  Timeout.resolver.retrans.first
  2015. [varies] Sets the resolver's
  2016. retransmition time interval (in
  2017. seconds) for the first attempt to
  2018. deliver a message.
  2019. confTO_RESOLVER_RETRANS_NORMAL  Timeout.resolver.retrans.normal
  2020. [varies] Sets the resolver's
  2021. retransmition time interval (in
  2022. seconds) for all resolver lookups
  2023. except the first delivery attempt.
  2024. confTO_RESOLVER_RETRY Timeout.resolver.retry
  2025. [varies] Sets the number of times
  2026. to retransmit a resolver query.
  2027. Sets both
  2028. Timeout.resolver.retry.first and
  2029. Timeout.resolver.retry.normal.
  2030. confTO_RESOLVER_RETRY_FIRST  Timeout.resolver.retry.first
  2031. [varies] Sets the number of times
  2032. to retransmit a resolver query for
  2033. the first attempt to deliver a
  2034. message.
  2035. confTO_RESOLVER_RETRY_NORMAL  Timeout.resolver.retry.normal
  2036. [varies] Sets the number of times
  2037. to retransmit a resolver query for
  2038. all resolver lookups except the
  2039. first delivery attempt.
  2040. confTIME_ZONE TimeZoneSpec [USE_SYSTEM] Time zone info -- can be
  2041. USE_SYSTEM to use the system's idea,
  2042. USE_TZ to use the user's TZ envariable,
  2043. or something else to force that value.
  2044. confDEF_USER_ID DefaultUser [1:1] Default user id.
  2045. confUSERDB_SPEC UserDatabaseSpec
  2046. [undefined] User database
  2047. specification.
  2048. confFALLBACK_MX FallbackMXhost [undefined] Fallback MX host.
  2049. confTRY_NULL_MX_LIST TryNullMXList [False] If this host is the best MX
  2050. for a host and other arrangements
  2051. haven't been made, try connecting
  2052. to the host directly; normally this
  2053. would be a config error.
  2054. confQUEUE_LA QueueLA [varies] Load average at which
  2055. queue-only function kicks in.
  2056. Default values is (8 * numproc)
  2057. where numproc is the number of
  2058. processors online (if that can be
  2059. determined).
  2060. confREFUSE_LA RefuseLA [varies] Load average at which
  2061. incoming SMTP connections are
  2062. refused.  Default values is (12 *
  2063. numproc) where numproc is the
  2064. number of processors online (if
  2065. that can be determined).
  2066. confMAX_ALIAS_RECURSION MaxAliasRecursion
  2067. [10] Maximum depth of alias recursion.
  2068. confMAX_DAEMON_CHILDREN MaxDaemonChildren
  2069. [undefined] The maximum number of
  2070. children the daemon will permit.  After
  2071. this number, connections will be
  2072. rejected.  If not set or <= 0, there is
  2073. no limit.
  2074. confMAX_HEADERS_LENGTH MaxHeadersLength
  2075. [undefined] Maximum length of the sum
  2076. of all headers.
  2077. confMAX_MIME_HEADER_LENGTH  MaxMimeHeaderLength
  2078. [undefined] Maximum length of
  2079. certain MIME header field values.
  2080. confCONNECTION_RATE_THROTTLE ConnectionRateThrottle
  2081. [undefined] The maximum number of
  2082. connections permitted per second.
  2083. After this many connections are
  2084. accepted, further connections will be
  2085. delayed.  If not set or <= 0, there is
  2086. no limit.
  2087. confWORK_RECIPIENT_FACTOR
  2088. RecipientFactor [30000] Cost of each recipient.
  2089. confSEPARATE_PROC ForkEachJob [False] Run all deliveries in a
  2090. separate process.
  2091. confWORK_CLASS_FACTOR ClassFactor [1800] Priority multiplier for class.
  2092. confWORK_TIME_FACTOR RetryFactor [90000] Cost of each delivery attempt.
  2093. confQUEUE_SORT_ORDER QueueSortOrder [Priority] Queue sort algorithm:
  2094. Priority, Host, Filename, or Time.
  2095. confMIN_QUEUE_AGE MinQueueAge [0] The minimum amount of time a job
  2096. must sit in the queue between queue
  2097. runs.  This allows you to set the
  2098. queue run interval low for better
  2099. responsiveness without trying all
  2100. jobs in each run.
  2101. confDEF_CHAR_SET DefaultCharSet [unknown-8bit] When converting
  2102. unlabeled 8 bit input to MIME, the
  2103. character set to use by default.
  2104. confSERVICE_SWITCH_FILE ServiceSwitchFile
  2105. [/etc/mail/service.switch] The file
  2106. to use for the service switch on
  2107. systems that do not have a
  2108. system-defined switch.
  2109. confHOSTS_FILE HostsFile [/etc/hosts] The file to use when doing
  2110. "file" type access of hosts names.
  2111. confDIAL_DELAY DialDelay [0s] If a connection fails, wait this
  2112. long and try again.  Zero means "don't
  2113. retry".  This is to allow "dial on
  2114. demand" connections to have enough time
  2115. to complete a connection.
  2116. confNO_RCPT_ACTION NoRecipientAction
  2117. [none] What to do if there are no legal
  2118. recipient fields (To:, Cc: or Bcc:)
  2119. in the message.  Legal values can
  2120. be "none" to just leave the
  2121. nonconforming message as is, "add-to"
  2122. to add a To: header with all the
  2123. known recipients (which may expose
  2124. blind recipients), "add-apparently-to"
  2125. to do the same but use Apparently-To:
  2126. instead of To:, "add-bcc" to add an
  2127. empty Bcc: header, or
  2128. "add-to-undisclosed" to add the header
  2129. ``To: undisclosed-recipients:;''.
  2130. confSAFE_FILE_ENV SafeFileEnvironment
  2131. [undefined] If set, sendmail will do a
  2132. chroot() into this directory before
  2133. writing files.
  2134. confCOLON_OK_IN_ADDR ColonOkInAddr [True unless Configuration Level > 6]
  2135. If set, colons are treated as a regular
  2136. character in addresses.  If not set,
  2137. they are treated as the introducer to
  2138. the RFC 822 "group" syntax.  Colons are
  2139. handled properly in route-addrs.  This
  2140. option defaults on for V5 and lower
  2141. configuration files.
  2142. confMAX_QUEUE_RUN_SIZE MaxQueueRunSize [0] If set, limit the maximum size of
  2143. any given queue run to this number of
  2144. entries.  Essentially, this will stop
  2145. reading each queue directory after this
  2146. number of entries are reached; it does
  2147. _not_ pick the highest priority jobs,
  2148. so this should be as large as your
  2149. system can tolerate.  If not set, there
  2150. is no limit.
  2151. confDONT_EXPAND_CNAMES DontExpandCnames
  2152. [False] If set, $[ ... $] lookups that
  2153. do DNS based lookups do not expand
  2154. CNAME records.  This currently violates
  2155. the published standards, but the IETF
  2156. seems to be moving toward legalizing
  2157. this.  For example, if "FTP.Foo.ORG"
  2158. is a CNAME for "Cruft.Foo.ORG", then
  2159. with this option set a lookup of
  2160. "FTP" will return "FTP.Foo.ORG"; if
  2161. clear it returns "Cruft.FOO.ORG".  N.B.
  2162. you may not see any effect until your
  2163. downstream neighbors stop doing CNAME
  2164. lookups as well.
  2165. confFROM_LINE UnixFromLine [From $g $d] The From_ line used
  2166. when sending to files or programs.
  2167. confSINGLE_LINE_FROM_HEADER  SingleLineFromHeader
  2168. [False] From: lines that have
  2169. embedded newlines are unwrapped
  2170. onto one line.
  2171. confALLOW_BOGUS_HELO AllowBogusHELO [False] Allow HELO SMTP command that
  2172. does not include a host name.
  2173. confMUST_QUOTE_CHARS MustQuoteChars [.'] Characters to be quoted in a full
  2174. name phrase (@,;:()[] are automatic).
  2175. confOPERATORS OperatorChars [.:%@!^/[]+] Address operator
  2176. characters.
  2177. confSMTP_LOGIN_MSG SmtpGreetingMessage
  2178. [$j Sendmail $v/$Z; $b]
  2179. The initial (spontaneous) SMTP
  2180. greeting message.  The word "ESMTP"
  2181. will be inserted between the first and
  2182. second words to convince other
  2183. sendmails to try to speak ESMTP.
  2184. confDONT_INIT_GROUPS DontInitGroups [False] If set, the initgroups(3)
  2185. routine will never be invoked.  You
  2186. might want to do this if you are
  2187. running NIS and you have a large group
  2188. map, since this call does a sequential
  2189. scan of the map; in a large site this
  2190. can cause your ypserv to run
  2191. essentially full time.  If you set
  2192. this, agents run on behalf of users
  2193. will only have their primary
  2194. (/etc/passwd) group permissions.
  2195. confUNSAFE_GROUP_WRITES UnsafeGroupWrites
  2196. [False] If set, group-writable
  2197. :include: and .forward files are
  2198. considered "unsafe", that is, programs
  2199. and files cannot be directly referenced
  2200. from such files.  World-writable files
  2201. are always considered unsafe.
  2202. confCONNECT_ONLY_TO ConnectOnlyTo [undefined] override connection
  2203. address (for testing).
  2204. confCONTROL_SOCKET_NAME ControlSocketName
  2205. [undefined] Control socket for daemon
  2206. management.
  2207. confDOUBLE_BOUNCE_ADDRESS  DoubleBounceAddress
  2208. [postmaster] If an error occurs when
  2209. sending an error message, send that
  2210. "double bounce" error message to this
  2211. address.
  2212. confDEAD_LETTER_DROP DeadLetterDrop [undefined] Filename to save bounce
  2213. messages which could not be returned
  2214. to the user or sent to postmaster.
  2215. If not set, the queue file will
  2216. be renamed.
  2217. confRRT_IMPLIES_DSN RrtImpliesDsn [False] Return-Receipt-To: header
  2218. implies DSN request.
  2219. confRUN_AS_USER RunAsUser [undefined] If set, become this user
  2220. when reading and delivering mail.
  2221. Causes all file reads (e.g., .forward
  2222. and :include: files) to be done as
  2223. this user.  Also, all programs will
  2224. be run as this user, and all output
  2225. files will be written as this user.
  2226. Intended for use only on firewalls
  2227. where users do not have accounts.
  2228. confMAX_RCPTS_PER_MESSAGE  MaxRecipientsPerMessage
  2229. [infinite] If set, allow no more than
  2230. the specified number of recipients in
  2231. an SMTP envelope.  Further recipients
  2232. receive a 452 error code (i.e., they
  2233. are deferred for the next delivery
  2234. attempt).
  2235. confDONT_PROBE_INTERFACES  DontProbeInterfaces
  2236. [False] If set, sendmail will _not_
  2237. insert the names and addresses of any
  2238. local interfaces into the $=w class
  2239. (list of known "equivalent" addresses).
  2240. If you set this, you must also include
  2241. some support for these addresses (e.g.,
  2242. in a mailertable entry) -- otherwise,
  2243. mail to addresses in this list will
  2244. bounce with a configuration error.
  2245. confPID_FILE PidFile [system dependent] Location of pid
  2246. file.
  2247. confPROCESS_TITLE_PREFIX  ProcessTitlePrefix
  2248. [undefined] Prefix string for the
  2249. process title shown on 'ps' listings.
  2250. confDONT_BLAME_SENDMAIL DontBlameSendmail
  2251. [safe] Override sendmail's file
  2252. safety checks.  This will definitely
  2253. compromise system security and should
  2254. not be used unless absolutely
  2255. necessary.
  2256. confREJECT_MSG - [550 Access denied] The message
  2257. given if the access database contains
  2258. REJECT in the value portion.
  2259. confDF_BUFFER_SIZE DataFileBufferSize
  2260. [4096] The maximum size of a
  2261. memory-buffered data (df) file
  2262. before a disk-based file is used.
  2263. confXF_BUFFER_SIZE XScriptFileBufferSize
  2264. [4096] The maximum size of a
  2265. memory-buffered transcript (xf)
  2266. file before a disk-based file is
  2267. used.
  2268. confAUTH_MECHANISMS AuthMechanisms [GSSAPI KERBEROS_V4 DIGEST-MD5
  2269. CRAM-MD5] List of authentication
  2270. mechanisms for AUTH (separated by
  2271. spaces).  The advertised list of
  2272. authentication mechanisms will be the
  2273. intersection of this list and the list
  2274. of available mechanisms as determined
  2275. by the CYRUS SASL library.
  2276. confDEF_AUTH_INFO DefaultAuthInfo [undefined] Filename that contains
  2277. authentication information for
  2278. outgoing connections.  This file
  2279. must contain the user id, the
  2280. authorization id, the password
  2281. (plain text), and the realm to
  2282. use on separate lines and must be
  2283. readable by root (or the trusted
  2284. user) only.  If no realm is
  2285. specified, $j is used.
  2286. confAUTH_OPTIONS AuthOptions [T] When to use the AUTH= parameter
  2287. for the MAIL FROM command:
  2288. T: Try when available (server lists
  2289. 250-AUTH ...)
  2290. A: Only when authentication succeeded.
  2291. confLDAP_DEFAULT_SPEC LDAPDefaultSpec [undefined] Default map
  2292. specification for LDAP maps.  The
  2293. value should only contain LDAP
  2294. specific settings such as "-h host
  2295. -p port -d bindDN", etc.  The
  2296. settings will be used for all LDAP
  2297. maps unless they are specified in
  2298. the individual map specification
  2299. ('K' command).
  2300. See also the description of OSTYPE for some parameters that can be
  2301. tweaked (generally pathnames to mailers).
  2302. DaemonPortOptions are a special case since multiple daemons can be
  2303. defined.  This can be done via
  2304. DAEMON_OPTIONS(`field1=value1,field2=value2,...')
  2305. For example:
  2306. DAEMON_OPTIONS(`Port=smtp,Name=MTA')
  2307. DAEMON_OPTIONS(`Port=587,Name=MSA,M=E')
  2308. If no DAEMON_OPTIONS are defined, then the two lines above are the default.
  2309. The second of these represents a "Message Submission Agent" as defined by
  2310. RFC 2476.  To turn off the MSA daemon, use FEATURE(`no_msa').
  2311. +-----------+
  2312. | HIERARCHY |
  2313. +-----------+
  2314. Within this directory are several subdirectories, to wit:
  2315. m4 General support routines.  These are typically
  2316. very important and should not be changed without
  2317. very careful consideration.
  2318. cf The configuration files themselves.  They have
  2319. ".mc" suffixes, and must be run through m4 to
  2320. become complete.  The resulting output should
  2321. have a ".cf" suffix.
  2322. ostype Definitions describing a particular operating
  2323. system type.  These should always be referenced
  2324. using the OSTYPE macro in the .mc file.  Examples
  2325. include "bsd4.3", "bsd4.4", "sunos3.5", and
  2326. "sunos4.1".
  2327. domain Definitions describing a particular domain, referenced
  2328. using the DOMAIN macro in the .mc file.  These are
  2329. site dependent; for example, "CS.Berkeley.EDU.m4"
  2330. describes hosts in the CS.Berkeley.EDU subdomain.
  2331. mailer Descriptions of mailers.   These are referenced using
  2332. the MAILER macro in the .mc file.
  2333. sh Shell files used when building the .cf file from the
  2334. .mc file in the cf subdirectory.
  2335. feature These hold special orthogonal features that you might
  2336. want to include.  They should be referenced using
  2337. the FEATURE macro.
  2338. hack Local hacks.  These can be referenced using the HACK
  2339. macro.  They shouldn't be of more than voyeuristic
  2340. interest outside the .Berkeley.EDU domain, but who knows?
  2341. siteconfig Site configuration -- e.g., tables of locally connected
  2342. UUCP sites.
  2343. +------------------------+
  2344. | ADMINISTRATIVE DETAILS |
  2345. +------------------------+
  2346. The following sections detail usage of certain internal parts of the
  2347. sendmail.cf file.  Read them carefully if you are trying to modify
  2348. the current model.  If you find the above descriptions adequate, these
  2349. should be {boring, confusing, tedious, ridiculous} (pick one or more).
  2350. RULESETS (* means built in to sendmail)
  2351.    0 * Parsing
  2352.    1 * Sender rewriting
  2353.    2 * Recipient rewriting
  2354.    3 * Canonicalization
  2355.    4 * Post cleanup
  2356.    5 * Local address rewrite (after aliasing)
  2357.   1x mailer rules (sender qualification)
  2358.   2x mailer rules (recipient qualification)
  2359.   3x mailer rules (sender header qualification)
  2360.   4x mailer rules (recipient header qualification)
  2361.   5x mailer subroutines (general)
  2362.   6x mailer subroutines (general)
  2363.   7x mailer subroutines (general)
  2364.   8x reserved
  2365.   90 Mailertable host stripping
  2366.   96 Bottom half of Ruleset 3 (ruleset 6 in old sendmail)
  2367.   97 Hook for recursive ruleset 0 call (ruleset 7 in old sendmail)
  2368.   98 Local part of ruleset 0 (ruleset 8 in old sendmail)
  2369.   99 Guaranteed null (for debugging)
  2370. MAILERS
  2371.    0 local, prog local and program mailers
  2372.    1 [e]smtp, relay SMTP channel
  2373.    2 uucp-* UNIX-to-UNIX Copy Program
  2374.    3 netnews Network News delivery
  2375.    4 fax Sam Leffler's HylaFAX software
  2376.    5 mail11 DECnet mailer
  2377. MACROS
  2378.    A
  2379.    B Bitnet Relay
  2380.    C DECnet Relay
  2381.    D The local domain -- usually not needed
  2382.    E reserved for X.400 Relay
  2383.    F FAX Relay
  2384.    G
  2385.    H mail Hub (for mail clusters)
  2386.    I
  2387.    J
  2388.    K
  2389.    L Luser Relay
  2390.    M Masquerade (who you claim to be)
  2391.    N
  2392.    O
  2393.    P
  2394.    Q
  2395.    R Relay (for unqualified names)
  2396.    S Smart Host
  2397.    T
  2398.    U my UUCP name (if you have a UUCP connection)
  2399.    V UUCP Relay (class V hosts)
  2400.    W UUCP Relay (class W hosts)
  2401.    X UUCP Relay (class X hosts)
  2402.    Y UUCP Relay (all other hosts)
  2403.    Z Version number
  2404. CLASSES
  2405.    A
  2406.    B domains that are candidates for bestmx lookup
  2407.    C
  2408.    D
  2409.    E addresses that should not seem to come from $M
  2410.    F hosts this system forward for
  2411.    G domains that should be looked up in genericstable
  2412.    H
  2413.    I
  2414.    J
  2415.    K
  2416.    L addresses that should not be forwarded to $R
  2417.    M domains that should be mapped to $M
  2418.    N host/domains that should not be mapped to $M
  2419.    O operators that indicate network operations (cannot be in local names)
  2420.    P top level pseudo-domains: BITNET, DECNET, FAX, UUCP, etc.
  2421.    Q
  2422.    R domains this system is willing to relay (pass anti-spam filters)
  2423.    S
  2424.    T
  2425.    U locally connected UUCP hosts
  2426.    V UUCP hosts connected to relay $V
  2427.    W UUCP hosts connected to relay $W
  2428.    X UUCP hosts connected to relay $X
  2429.    Y locally connected smart UUCP hosts
  2430.    Z locally connected domain-ized UUCP hosts
  2431.    . the class containing only a dot
  2432.    [ the class containing only a left bracket
  2433. M4 DIVERSIONS
  2434.    1 Local host detection and resolution
  2435.    2 Local Ruleset 3 additions
  2436.    3 Local Ruleset 0 additions
  2437.    4 UUCP Ruleset 0 additions
  2438.    5 locally interpreted names (overrides $R)
  2439.    6 local configuration (at top of file)
  2440.    7 mailer definitions
  2441.    8 DNS based blacklists
  2442.    9 special local rulesets (1 and 2)
  2443. $Revision: 8.351 $, Last updated $Date: 1999/12/09 21:54:55 $