946 lines
87 KiB
HTML
946 lines
87 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><base href="http://www.linuxgazette.com/" />
|
|
<title>
|
|
Familiarize Yourself with sendmail - Linux Gazette </title>
|
|
</head>
|
|
<body>
|
|
<!-- node: "Familiarize Yourself with sendmail" -->
|
|
<table cellpadding="0" cellspacing="0" style="border 0px; width: 100%;">
|
|
<tr><td colspan="2"><img src="themes/lg/images/drop.gif" alt="" title="" /> <b>Familiarize Yourself with sendmail</b></td></tr>
|
|
<tr style="vertical-align: bottom;"><td colspan="2" style="background-color: #000000; width: 100%;"><img src="themes/lg/images/pixel.gif" width="1" height="1" alt="" title="" /></td></tr>
|
|
<tr><td><div style="color: #7c7c7c;"><small>Submitted by <a href="http://www.linuxgazette.com/user/view/726" title="View user profile.">h.santhosh@timk...</a> on Saturday, November 22, 2003 - 15:24</small></div></td><td style="text-align: right; vertical-align: top;"></small></td></tr>
|
|
<tr><td colspan="2"> </td></tr>
|
|
<tr><td colspan="2"><p><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
|
|
<TITLE>Familiarize Yourself with sendmail</TITLE>
|
|
<META NAME="GENERATOR" CONTENT="OpenOffice.org 1.0.2 (Linux)">
|
|
<META NAME="CREATED" CONTENT="20031122;17281600">
|
|
<META NAME="CHANGED" CONTENT="20031122;18152100">
|
|
<META NAME="ProgId" CONTENT="OpenOffice Document">
|
|
<META NAME="Originator" CONTENT="Open Office">
|
|
<META NAME="Info 3" CONTENT="www.openoffice.org">
|
|
<!--[if gte mso 9]><xml>
|
|
<o:DocumentProperties>
|
|
<o:Author>Santhosh</o:Author>
|
|
<o:LastAuthor>Santhosh</o:LastAuthor>
|
|
<o:Revision>9</o:Revision>
|
|
<o:TotalTime>86</o:TotalTime>
|
|
<o:Created>2003-11-12T08:29:00Z</o:Created>
|
|
<o:LastSaved>2003-11-12T08:37:00Z</o:LastSaved>
|
|
<o:Pages>7</o:Pages>
|
|
<o:Words>2870</o:Words>
|
|
<o:Characters>16362</o:Characters>
|
|
<o:Company>Timken</o:Company>
|
|
<o:Lines>136</o:Lines>
|
|
<o:Paragraphs>32</o:Paragraphs>
|
|
<o:CharactersWithSpaces>20093</o:CharactersWithSpaces>
|
|
<o:Version>9.6926</o:Version>
|
|
</o:DocumentProperties>
|
|
</xml><![endif]-->
|
|
<!--[if gte mso 9]><xml>
|
|
<w:OpenOfficeDocument>
|
|
<w:DoNotHyphenateCaps/>
|
|
<w:PunctuationKerning/>
|
|
<w:DrawingGridHorizontalSpacing>6 pt</w:DrawingGridHorizontalSpacing>
|
|
<w:DrawingGridVerticalSpacing>6 pt</w:DrawingGridVerticalSpacing>
|
|
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
|
|
<w:DisplayVerticalDrawingGridEvery>3</w:DisplayVerticalDrawingGridEvery>
|
|
<w:UseMarginsForDrawingGridOrigin/>
|
|
<w:DoNotShadeFormData/>
|
|
<w:Compatibility>
|
|
<w:FootnoteLayoutLikeWW8/>
|
|
<w:ShapeLayoutLikeWW8/>
|
|
<w:AlignTablesRowByRow/>
|
|
<w:ForgetLastTabAlignment/>
|
|
<w:LayoutRawTableWidth/>
|
|
<w:LayoutTableRowsApart/>
|
|
</w:Compatibility>
|
|
</w:OpenOfficeDocument>
|
|
</xml><![endif]-->
|
|
<STYLE>
|
|
<!--
|
|
H1 { color: #000000 }
|
|
P { color: #000000 }
|
|
H2 { color: #000000 }
|
|
A:link { color: #0000ff }
|
|
A:visited { color: #800080 }
|
|
-->
|
|
</STYLE>
|
|
</HEAD>
|
|
<BODY LANG="en-US" TEXT="#000000" LINK="#0000ff" VLINK="#800080">
|
|
<P STYLE="margin-bottom: 0cm"> </P>
|
|
<H2><SPAN STYLE="text-decoration: none"><SPAN STYLE="font-weight: normal"><FONT SIZE=3><FONT FACE="Times New Roman">When
|
|
we do a default Linux server installation you will find the default
|
|
/etc/mail/sendmail.mc . This file has various macros defined and with
|
|
very little explanation. Firstly, preview your default <a target="_blank" href="http://www.linuxgazette.com/node/view/160">sendmail.mc</a>. Than the below article explains the details for most of the
|
|
macros defined in sendmail.mc in the same order. For more information
|
|
refer to <A target="_blank" HREF="http://www.linuxgazette.com/node/view/159">Sendmail.mc Explained</a><p>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>===============================================================================</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>divert(-1)</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>dnl
|
|
This is the sendmail macro config file. If you make changes to this
|
|
file,</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>dnl
|
|
you need the sendmail-cf rpm installed and then have to generate </FONT></FONT>
|
|
</P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>dnl
|
|
new /etc/mail/sendmail.cf by running the following command:</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>dnl</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>dnl
|
|
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>dnl</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P>include('/usr/share/sendmail-cf/m4/cf.m4')</P>
|
|
<P ALIGN=JUSTIFY>This is a requirement in order to process the macro
|
|
file and generate the
|
|
</P>
|
|
<P ALIGN=JUSTIFY>sendmail.cf file. This include the cf.m4 macro files
|
|
which contains lots of macro definition for the rest of the file.</P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<H1>VERSIONID('linux setup for Red Hat Linux')dnl</H1>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
VERSIONID is a macro that stuffs the version information into the
|
|
resulting file. You could use SCCS, RCS, CVS, something else,
|
|
or omit it completely. This is not the same as the version id
|
|
included in SMTP greeting messages -- this is defined in
|
|
m4/version.m4.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>OSTYPE('linux')</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
You must specify an OSTYPE to properly configure things such as the
|
|
pathname of the help and status files, the flags needed for the local
|
|
mailer, and other important things. If you omit it, you will
|
|
get an error when you try to build the configuration. Look at
|
|
the ostype directory for the list of known operating system types.
|
|
DOMAIN('CS.Berkeley.EDU')dnl This example is specific to the Computer
|
|
Science Division at Berkeley. You can use "DOMAIN('generic')"
|
|
to get a sufficiently bland definition that may well work for you, or
|
|
you can create a customized domain definition appropriate for your
|
|
environment.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>dnl
|
|
define('SMART_HOST','smtp.your.provider')</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>Uncomment
|
|
and edit the following line if your mail needs to be sent out through
|
|
an external mail server:</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>define('confDEF_USER_ID',''8:12'')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
confDEF_USER_ID
|
|
DefaultUser [1:1] Default user id.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>undefine('UUCP_RELAY')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
UUCP_RELAY The host that will accept UUCP-addressed email.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
If not defined, all UUCP sites must be directly connected.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>undefine('BITNET_RELAY')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
BITNET_RELAY The host that will accept
|
|
BITNET-addressed email.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
If not defined, the .BITNET pseudo-domain won't work.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>dnl
|
|
define('confAUTO_REBUILD')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>define('confTO_CONNECT',
|
|
'1m')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>confTO_CONNECT
|
|
Timeout.connect [0] The timeout waiting for an initial
|
|
connect() to complete. This can only shorten connection
|
|
timeouts; the kernel silently enforces an absolute maximum (which
|
|
varies depending on the system).</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>define('confTRY_NULL_MX_LIST',true)dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
confTRY_NULL_MX_LIST TryNullMXList[False] If this
|
|
host is the best MX</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
for a host and other arrangements</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
haven't been made, try connecting</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
to the host directly; normally this</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
would be a config error.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>define('confDONT_PROBE_INTERFACES',true)dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>confDONT_PROBE_INTERFACES DontProbeInterfaces</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
[False] If set, sendmail will _not_</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
insert the names and addresses of any</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
local interfaces into class {w}</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
(list of known "equivalent" addresses).</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
If you set this, you must also include</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
some support for these addresses (e.g.,</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
in a mailertable entry) -- otherwise,</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
mail to addresses in this list will</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
bounce with a configuration error.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
If set to "loopback" (without</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
quotes), sendmail will skip</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
loopback interfaces (e.g., "lo0").</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>
|
|
</B></FONT></FONT>
|
|
</P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>define('PROCMAIL_MAILER_PATH','/usr/bin/procmail')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>PROCMAIL_MAILER_PATH [/usr/local/bin/procmail]
|
|
The path to the procmail program. This is also used by
|
|
FEATURE('local_procmail').</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>define('ALIAS_FILE',
|
|
'/etc/aliases')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>ALIAS_FILE
|
|
[/etc/mail/aliases] The location of the text version</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
of the alias file(s). It can be a comma-separated</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
list of names (but be sure you quote values with</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
commas in them -- for example, use define('ALIAS_FILE', 'a,b')</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
to get "a" and "b" both listed as alias files;</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
|
|
otherwise the define() primitive only sees "a").</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>dnl
|
|
define('STATUS_FILE', '/etc/mail/statistics')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>STATUS_FILE
|
|
[/etc/mail/statistics] The file containing status information.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>define('UUCP_MAILER_MAX',
|
|
'2000000')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>UUCP_MAILER_MAX
|
|
[100000] The maximum size message accepted for transmission by the
|
|
UUCP mailers.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>define('confUSERDB_SPEC',
|
|
'/etc/mail/userdb.db')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>confUSERDB_SPEC
|
|
UserDatabaseSpec</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
[undefined] User database specification.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>define('confPRIVACY_FLAGS',
|
|
'authwarnings,novrfy,noexpn,restrictqrun')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>confPRIVACY_FLAGS PrivacyOptions [authwarnings]
|
|
Privacy flags.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>define('confAUTH_OPTIONS',
|
|
'A')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>confAUTH_OPTIONS AuthOptions [undefined] If this option is
|
|
'A'</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
then the AUTH= parameter for the</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
MAIL FROM command is only issued</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
when authentication succeeded.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
Other values (which should be listed</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
one after the other without any</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
intervening characters except for</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
space or comma) are a, c, d, f, p,</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
and y. See doc/op/op.me for</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
details.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>define('confMAX_MESSAGE_SIZE','100')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>confMAX_MESSAGE_SIZE MaxMessageSize
|
|
[infinite] The maximum size of </FONT></FONT>
|
|
</P>
|
|
<P STYLE="margin-left: 5.08cm; margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>messages
|
|
that will be accepted (in bytes).</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>dnl
|
|
TRUST_AUTH_MECH('EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>Per default, relaying is allowed for any user who authenticated</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>via
|
|
a "trusted" mechanism, i.e., one that is defined via
|
|
TRUST_AUTH_MECH('list of mechanisms')</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>For
|
|
example: TRUST_AUTH_MECH('KERBEROS_V4 DIGEST-MD5')</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>dnl
|
|
define('confAUTH_MECHANISMS', 'EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5
|
|
LOGIN PLAIN')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>confAUTH_MECHANISMS AuthMechanisms
|
|
[GSSAPI KERBEROS_V4 DIGEST-MD5</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
CRAM-MD5] List of authentication</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
mechanisms for AUTH (separated by</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
spaces). The advertised list of</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
authentication mechanisms will be the</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
intersection of this list and the list</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
of available mechanisms as determined</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
by the CYRUS SASL library.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>dnl
|
|
define('confCACERT_PATH','/usr/share/ssl/certs')</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>confCACERT_PATH
|
|
CACERTPath [undefined] Path to directory</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
with certs of CAs.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>dnl
|
|
define('confCACERT','/usr/share/ssl/certs/ca-bundle.crt')</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>confCACERT CACERTFile
|
|
[undefined] File containing one CA</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
cert.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>dnl
|
|
define('confSERVER_CERT','/usr/share/ssl/certs/sendmail.pem')</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>confSERVER_CERT
|
|
ServerCertFile [undefined] File containing the</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
cert of the server, i.e., this cert</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
is used when sendmail acts as</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
server.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>dnl
|
|
define('confSERVER_KEY','/usr/share/ssl/certs/sendmail.pem')</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>confSERVER_KEY
|
|
ServerKeyFile [undefined] File containing the</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
private key belonging to the server</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
cert.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>dnl
|
|
define('confTO_QUEUEWARN', '4h')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>confTO_QUEUEWARN Timeout.queuewarn</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
[4h] The timeout before a warning</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
message is sent to the sender telling</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
them that the message has been</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
deferred.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>dnl
|
|
define('confTO_QUEUERETURN', '5d')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>confTO_QUEUERETURN
|
|
Timeout.queuereturn</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
[5d] The timeout before a message is</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
returned as undeliverable.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>dnl
|
|
define('confQUEUE_LA', '12')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>confQUEUE_LA
|
|
QueueLA
|
|
[varies] Load average at which</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
queue-only function kicks in.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
Default values is (8 * numproc)</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
where numproc is the number of</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
processors online (if that can be</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
determined).</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>dnl
|
|
define('confREFUSE_LA', '18')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>confREFUSE_LA
|
|
RefuseLA [varies] Load average at which</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
incoming SMTP connections are</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
refused. Default values is (12 *</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
numproc) where numproc is the</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
number of processors online (if</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
that can be determined).</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>define('confTO_IDENT',
|
|
'0')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>confTO_IDENT
|
|
Timeout.ident [5s] The timeout waiting for a</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
response to an IDENT query.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>dnl
|
|
FEATURE(delay_checks)dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>delay_checks The rulesets
|
|
check_mail and check_relay will not be called</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
when a client connects or issues a MAIL command, respectively.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
Instead, those rulesets will be called by the check_rcpt</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
ruleset; they will be skipped under certain circumstances.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
See "Delay all checks" in the anti-spam configuration
|
|
control</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
section. Note: this feature is incompatible to the versions</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
in 8.10 and 8.11.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>FEATURE('no_default_msa','dnl')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>no_default_msa Don't generate the default MSA
|
|
daemon, i.e.,</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
DAEMON_OPTIONS('Port=587,Name=MSA,M=E')</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
To define a MSA daemon with other parameters, use this</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
FEATURE and introduce new settings via DAEMON_OPTIONS().</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>FEATURE('smrsh','/usr/sbin/smrsh')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>smrsh Use the SendMail
|
|
Restricted SHell (smrsh) provided</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
with the distribution instead of /bin/sh for mailing</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
to programs. This improves the ability of the local</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
system administrator to control what gets run via</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
e-mail. If an argument is provided it is used as the</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
pathname to smrsh; otherwise, the path defined by</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
confEBINDIR is used for the smrsh binary -- by default,</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
/usr/libexec/smrsh is assumed.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>FEATURE('mailertable','hash
|
|
-o /etc/mail/mailertable.db')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>mailertable Include a "mailer table" which can be used
|
|
to override</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
routing for particular domains (which are not in class {w},</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
i.e. local host names). The argument of the FEATURE may
|
|
be</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
the key definition. If none is specified, the definition</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
used is:</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
hash /etc/mail/mailertable</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
Keys in this database are fully qualified domain names</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
or partial domains preceded by a dot -- for example,</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
"vangogh.CS.Berkeley.EDU" or ".CS.Berkeley.EDU".
|
|
As a</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
special case of the latter, "." matches any domain not</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
covered by other keys. Values must be of the form:</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
mailer:domain</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
where "mailer" is the internal mailer name, and "domain"</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
is where to send the message. These maps are not</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
reflected into the message header. As a special case,</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
the forms:</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
local:user</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
will forward to the indicated user using the local mailer,</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
local:</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
will forward to the original user in the e-mail address</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
using the local mailer, and</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
error:code message</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
error:D.S.N:code message</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
will give an error message with the indicated SMTP reply</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
code and message, where D.S.N is an RFC 1893 compliant</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
error code.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>FEATURE('virtusertable','hash
|
|
-o /etc/mail/virtusertable.db')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>virtusertable A domain-specific form of
|
|
aliasing, allowing multiple</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
virtual domains to be hosted on one machine. For example,</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
if the virtuser table contained:</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
info@foo.com foo-info</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
info@bar.com bar-info</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
joe@bar.com error:nouser 550 No such user here</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
jax@bar.com error:5.7.0:550 Address invalid</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
@baz.org jane@example.net</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
then mail addressed to info@foo.com will be sent to the</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
address foo-info, mail addressed to info@bar.com will be</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
delivered to bar-info, and mail addressed to anyone at baz.org</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
will be sent to jane@example.net, mail to joe@bar.com will</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
be rejected with the specified error message, and mail to</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
jax@bar.com will also have a RFC 1893 compliant error code</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
5.7.0.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
The username from the original address is passed</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
as %1 allowing:</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
@foo.org %1@example.com</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
meaning someone@foo.org will be sent to someone@example.com.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
Additionally, if the local part consists of "user+detail"</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
then "detail" is passed as %2 and "+detail" is
|
|
passed as %3</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
when a match against user+* is attempted, so entries like</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
old+*@foo.org new+%2@example.com</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
gen+*@foo.org %2@example.com</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
+*@foo.org %1%3@example.com</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
X++@foo.org Z%3@example.com</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
@bar.org %1%3</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
and other forms are possible. Note: to preserve "+detail"</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
for a default case (@domain) %1%3 must be used as RHS.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
There are two wildcards after "+": "+" matches
|
|
only a non-empty</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
detail, "*" matches also empty details, e.g., user+@foo.org</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
matches +*@foo.org but not ++@foo.org. This can be used</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
to ensure that the parameters %2 and %3 are not empty.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
All the host names on the left hand side (foo.com, bar.com,</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
and baz.org) must be in class {w} or class {VirtHost}. The</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
latter can be defined by the macros VIRTUSER_DOMAIN or</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
VIRTUSER_DOMAIN_FILE (analogously to MASQUERADE_DOMAIN and</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
MASQUERADE_DOMAIN_FILE, see below). If VIRTUSER_DOMAIN or</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
VIRTUSER_DOMAIN_FILE is used, then the entries of class</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
{VirtHost} are added to class {R}, i.e., relaying is allowed</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
to (and from) those domains. The default map definition is:</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
hash /etc/mail/virtusertable</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
A new definition can be specified as the second argument of</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
the FEATURE macro, such as</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
FEATURE('virtusertable', 'dbm /etc/mail/virtusers')</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>FEATURE(redirect)dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>redirect Reject all mail addressed to
|
|
"address.REDIRECT" with</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
a ''551 User has moved; please try <address>'' message.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
If this is set, you can alias people who have left</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
to their new address with ".REDIRECT" appended.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>FEATURE(always_add_domain)dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>always_add_domain</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
Include the local host domain even on locally delivered</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
mail. Normally it is not added on unqualified names.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
However, if you use a shared message store but do not use</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
the same user name space everywhere, you may need the host</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
name on local names. An optional argument specifies</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
another domain to be added than the local.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>FEATURE(use_cw_file)dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B> FEATURE('use_cw_file')tells
|
|
sendmail that you want to have it read </FONT></FONT>
|
|
</P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>an
|
|
/etc/mail/local-host-names file to get values for class {w}.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>FEATURE(use_ct_file)dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>use_ct_file Read the file /etc/mail/trusted-users file to get the</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
names of users that will be ''trusted'', that is, able to</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
set their envelope from address using -f without generating</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
a warning message. The actual filename can be overridden</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
by redefining confCT_FILE.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>FEATURE(local_procmail,'','procmail
|
|
-t -Y -a $h -d $u')dnl</B></FONT></FONT></P>
|
|
<P>dnl The '-t' option will retry delivery if e.g. the user runs over
|
|
his quota.</P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>local_procmail Use procmail or another delivery
|
|
agent as the local mailer.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
The argument to this feature is the pathname of the</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
delivery agent, which defaults to PROCMAIL_MAILER_PATH.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
Note that this does NOT use PROCMAIL_MAILER_FLAGS or</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
PROCMAIL_MAILER_ARGS for the local mailer; tweak</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
LOCAL_MAILER_FLAGS and LOCAL_MAILER_ARGS instead, or</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
specify the appropriate parameters. When procmail is used,</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
the local mailer can make use of the</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
"user+indicator@local.host" syntax; normally the +indicator</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
is just tossed, but by default it is passed as the -a</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
argument to procmail.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
This feature can take up to three arguments:</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
1. Path to the mailer program</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
[default: /usr/local/bin/procmail]</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
2. Argument vector including name of the program</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
[default: procmail -Y -a $h -d $u]</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
3. Flags for the mailer [default: SPfhn9]</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
Empty arguments cause the defaults to be taken.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
For example, this allows it to use the maildrop</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
(http://www.flounder.net/~mrsam/maildrop/) mailer instead</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
by specifying:</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
FEATURE('local_procmail', '/usr/local/bin/maildrop',</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
'maildrop -d $u')</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
or scanmails using:</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
FEATURE('local_procmail', '/usr/local/bin/scanmails')</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
WARNING: This feature sets LOCAL_MAILER_FLAGS unconditionally,</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
i.e., without respecting any definitions in an OSTYPE setting.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>FEATURE('access_db','hash
|
|
-T<TMPF> -o /etc/mail/access.db')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>access_db Turns on the access database feature.
|
|
The access db gives</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
you the ability to allow or refuse to accept mail from</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
specified domains for administrative reasons. Moreover,</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
it can control the behavior of sendmail in various situations.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
By default, the access database specification is:</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
hash -T<TMPF> /etc/mail/access</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
See the anti-spam configuration control section for further</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
important information about this feature. Notice:</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
"-T<TMPF>" is meant literal, do not replace it by
|
|
anything.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>FEATURE('blacklist_recipients')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>blacklist_recipients</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
Turns on the ability to block incoming mail for certain</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
recipient usernames, hostnames, or addresses. For</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
example, you can block incoming mail to user nobody,</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
host foo.mydomain.com, or guest@bar.mydomain.com.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
These specifications are put in the access db as</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
described in the anti-spam configuration control section</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
later in this document.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>EXPOSED_USER('root')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>EXPOSED_USER('usernames')</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>This
|
|
adds users to class {E}; you could also use</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P>DAEMON_OPTIONS('Port=smtp,Addr=127.0.0.1, Name=MTA')</P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>dnl
|
|
This changes sendmail to only listen on the loopback device 127.0.0.1</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>dnl
|
|
and not on any other network devices. Comment this out if you want</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>dnl
|
|
to accept email over the network.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>dnl
|
|
DAEMON_OPTIONS('port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>dnl
|
|
NOTE: binding both IPv4 and IPv6 daemon to the same port requires</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>dnl
|
|
a kernel patch</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<H1>FEATURE('accept_unresolvable_domains')dnl</H1>
|
|
<P STYLE="font-weight: medium">dnl We strongly recommend to comment
|
|
this one out if you want to protect</P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>dnl
|
|
yourself from spam. However, the laptop and users on computers that
|
|
do</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>dnl
|
|
not have 24x7 DNS do need this.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>accept_unresolvable_domains</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
Normally, MAIL FROM: commands in the SMTP session will be</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
refused if the host part of the argument to MAIL FROM:</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
cannot be located in the host name service (e.g., an A or</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
MX record in DNS). If you are inside a firewall that has</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
only a limited view of the Internet host name space, this</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
could cause problems. In this case you probably want to</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
use this feature to accept all domains on input, even if</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
they are unresolvable.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>dnl
|
|
FEATURE('relay_based_on_MX')dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT SIZE=2><FONT FACE="Courier New"><B>
|
|
</B>relay_based_on_MX</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
Turns on the ability to allow relaying based on the MX</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
records of the host portion of an incoming recipient; that</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
is, if an MX record for host foo.com points to your site,</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
you will accept and relay mail addressed to foo.com. See</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
description below for more information before using this</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
feature. Also, see the KNOWNBUGS entry regarding bestmx</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
map lookups.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
FEATURE('relay_based_on_MX') does not necessarily allow</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
routing of these messages which you expect to be allowed,</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
if route address syntax (or %-hack syntax) is used. If</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
this is a problem, add entries to the access-table or use</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
FEATURE('loose_relay_check').</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>MAILER(smtp)dnl
|
|
</B></FONT></FONT>
|
|
</P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>MAILER(procmail)dnl</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>These
|
|
describe the mailers used at the default CS site. The local</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>mailer
|
|
is always included automatically. Beware: MAILER declarations</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>should
|
|
always be at the end of the configuration file. The general</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>rules
|
|
are that the order should be:</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>local
|
|
The local and prog mailers. You will almost always</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
need these; the only exception is if you relay ALL</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
your mail to another site. This mailer is included</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
automatically.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>smtp
|
|
The Simple Mail Transport Protocol mailer. This does</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
not hide hosts behind a gateway or another other</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
such hack; it assumes a world where everyone is</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
running the name server. This file actually defines</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
five mailers: "smtp" for regular (old-style) SMTP to</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
other servers, "esmtp" for extended SMTP to other</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
servers, "smtp8" to do SMTP to other servers without</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
converting 8-bit data to MIME (essentially, this is</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
your statement that you know the other end is 8-bit</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
clean even if it doesn't say so), "dsmtp" to do on</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
demand delivery, and "relay" for transmission to the</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
RELAY_HOST, LUSER_RELAY, or MAIL_HUB.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>pop
|
|
Post Office Protocol.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>procmail
|
|
An interface to procmail (does not come with sendmail).</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
This is designed to be used in mailertables. For example,</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
a common question is "how do I forward all mail for a given</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
domain to a single person?". If you have this mailer</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
defined, you could set up a mailertable reading:</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
host.com procmail:/etc/procmailrcs/host.com</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
with the file /etc/procmailrcs/host.com reading:</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
:0 # forward mail for host.com</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
! -oi -f $1 person@other.host</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
This would arrange for (anything)@host.com to be sent</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
to person@other.host. Within the procmail script, $1 is</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
the name of the sender and $2 is the name of the recipient.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
If you use this with FEATURE('local_procmail'), the FEATURE</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
should be listed first.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
Of course there are other ways to solve this particular</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2>
|
|
problem, e.g., a catch-all entry in a virtusertable.</FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2> </FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B>Cwlocalhost.localdomain</B></FONT></FONT></P>
|
|
<P STYLE="margin-bottom: 0cm"><FONT FACE="Courier New"><FONT SIZE=2><B> </B></FONT></FONT></P>
|
|
</table>
|
|
</body>
|
|
</html>
|
|
|