linux安装sendmail

sendmail学习笔记 Ver 1.0  
完成时间:2004-3-30
作者:Jims
http://www.ringkee.com
说明:欢迎转载

安装所需软件
sendmail.8.12.10.tar.gz   http://www.sendmail.org/
cyrus-sasl-2.1.18.tar.gz  http://asg.web.cmu.edu/cyrus/

安装步骤
1、 先安装cyrus-sasl-2.1.18.tar.gz,sendmail安装时要用到sasl(简单认证和安全层协议)的
2、 库文件的头文件。
解压缩:
# tar -zxvf cyrus-sasl-2.1.18.tar.gz
编译:
进入刚解压的源码目录,运行以下命令完成安装。
#./configure --prefix=/usr/local/sasl2 --enable-login
一定要加--enable-login,因为SASL2默认不支持login这种验证方式,而OUTLOOK是通过
login来进行SMTP验证的。
#make           # 编译
#make install # 安装
完成以上linux程序安装三步曲之后,就可以开始配置和测试了。

2、配置SASL
为了把SASL应用于sendmail认证,还需进行一些配置工作。sendmail会到/usr/lib目录下去
找SASL2库,而我们是把程序安装在/usr/local/sasl2中,为什么不把软件安装在/usr/lib目录
呢?这主要是为了好管理自已安装的软件啦。所以我们要在/usr/lib目录下做一个链接:
# cd /usr/lib
# ln -s /usr/local/sasl2/lib/* .
ok,接着要在/var/目录下建一个目录给saslauthd进程存在临时数据。
# cd /var
# mkdir state
# cd state
# mkdir saslauthd
注:如果没有这些目录,运行saslauthd时,会提示出错。
ok,接着为确保CYRUS-SASL2函数库知道怎样验证所收来的SASL认证请求,必须创建一
个SASL的配置文件来把MTA程序定义成一个SASL应用。配置文件名为Sendmail.conf(注
意是大写的S),位于/usr/lib/sasl2目录中,也就是/usr/local/sasl2/lib/sasl2这个目录,记得上
面新建的链接了吗?在该文件中你定义你希望使用的认证数据库方法,以下这个例子使用
saslauthd来验证认证请求。
# cd /usr/lib/sasl2
# echo 'pwcheck_method: saslauthd' >; Sendmail.conf

3、测试
ok,现在可以运行saslauthd了,并进行测试。
# cd /usr/local/sasl2/sbin
# ./saslauthd -a shadow
用shadow的用户和密码进行验证
# ./testsaslauthd -u userid -p password
0: OK "Success."
如果出现以上信息,就说明saslauthd正常运行了。testsaslauthd程序默认是没有编译的,你
需要在源码目录树的saslauthd子目录中运行     # make testsaslauthd命令生成。

4、sasl2安装完成后,就要开始安装sendmail了。
先解压sendmail源码。
# tar -zxvf sendmail.8.12.10.tar.gz
如果要sendmail支持SASL,需要修改源码的位置配置文件site.config.m4。site.config.m4位
于源码目录树的devtools/Site。文件中应包含以下行:
PREPENDDEF(`confMAPDEF', `-DMAP_REGEX')
APPENDDEF(`confENVDEF', `-DTCPWRAPPERS -DSASL=2')
APPENDDEF(`conf_sendmail_LIBS', `-lwrap -lsasl2')
APPENDDEF(`confLIBDIRS', `-L/usr/local/sasl2/lib')
APPENDDEF(`confINCDIRS', `-I/usr/local/sasl2/include')
第一行配置正则表达式相关内容
第二、三行配置表示在sendmail程序中支持sasl2和tcp_wrapper(可通过hosts.allow和
hosts.deny控制访问)
第四、五行配置指出sasl2的库文件和头文件的位置。

ok,接着在编译前要建立一些用户和目录,并确保有正确的权限。
sendmail必须有一个set-group-id(默认是smmsp组)的程序来在一个组可写的目录中查询
排队邮件。所以我们要建立一个smmsp用户和组。并建立如下目录并设置相应的权限,具
体设置要求可查询源码目录树下sendmail/SECURITY文档。
# groupadd smmsp 
# useradd smmsp -d /var/spool/clientmqueue -s /dev/null
# mkdir /var/spool/clientmqueue
# chown -R smmsp:smmsp /var/spool/clientmqueue  
# chmod -R 770 /var/spool/clientmqueue  
# mkdir /etc/mail
# mkdir /var/spool/mqueue
# chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue
# chown root / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue

ok,接下来就可以进入源码目录树开始编译了。
# ./Build -c
-c选项能删除上次编译产生的文件。
# ./Build install
编译完成后就可以进行安装。

5、sendmail配置
要sendmail正常运行,还需配置几个文件,首先最重要的就是sendmail.cf 文件了。它在源
码目录树下的cf/cf目录下有很多例子可参考。你可以拷贝使用。由于sendmail.cf中的语法
很复杂,所以不建议手工修改。我们可以以sendmail.mc文档配合sendmail-cf目录下的宏通
过m4预处理器自动生成。m4预处理器用来从一组宏文件中创建sendmail配置文件。宏文
件作为输入被读进来。宏被展开,然后写到一个输出文件。sendmail-cf目录一般放在/usr/share
目录下。其实sendmail-cf目录的内容和源码目录树下的cf目录的内容是一样的,所以,为
了保证sendmail-cf目录的内容与安装版本同步,要把源码目录树下的cf目录的内容拷贝到
/usr/share/sendmail-cf目录。

sendmail.mc配置文档内容如下:
divert(-1)
include(`/usr/share/sendmail-cf/m4/cf.m4')
VERSIONID(`linux setup for Red Hat Linux')dnl
OSTYPE(`linux')
dnl Uncomment and edit the following line if your mail needs to be sent out
dnl through an external mail server:
dnl define(`SMART_HOST',`smtp.your.provider')
define(`confDEF_USER_ID',``8:12'')dnl
undefine(`UUCP_RELAY')dnl
undefine(`BITNET_RELAY')dnl
dnl define(`confAUTO_REBUILD')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST',true)dnl
define(`confDONT_PROBE_INTERFACES',true)dnl
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/mail/aliases')dnl
define(`STATUS_FILE', `/etc/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl               
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 
LOGIN PLAIN')dnl
dnl define(`confCACERT_PATH',`/usr/share/ssl/certs')
dnl define(`confCACERT',`/usr/share/ssl/certs/ca-bundle.crt')
dnl define(`confSERVER_CERT',`/usr/share/ssl/certs/sendmail.pem')
dnl define(`confSERVER_KEY',`/usr/share/ssl/certs/sendmail.pem')
dnl define(`confTO_QUEUEWARN', `4h')dnl
dnl define(`confTO_QUEUERETURN', `5d')dnl
dnl define(`confQUEUE_LA', `12')dnl
dnl define(`confREFUSE_LA', `18')dnl
define(`confTO_IDENT', `0')dnl
dnl FEATURE(delay_checks)dnl
FEATURE(`no_default_msa',`dnl')dnl
FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
dnl The '-t' option will retry delivery if e.g. the user runs over his quota.
FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db',`hash -T<TMPF>; -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
dnl This changes sendmail to only listen on the loopback device 127.0.0.1
dnl and not on any other network devices. Comment this out if you want
dnl to accept email over the network.
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')
dnl NOTE: binding both IPv4 and IPv6 daemon to the same port requires
dnl       a kernel patch
dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')
dnl We strongly recommend to comment this one out if you want to protect
dnl yourself from spam. However, the laptop and users on computers that do
dnl not have 24x7 DNS do need this.
FEATURE(`accept_unresolvable_domains')dnl
dnl FEATURE(`relay_based_on_MX')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl

记得要使以下两个条语句有效,它的意思是如果access.db访问控制没有设置,则启用以下
验证方式进行smtp验证。
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl               
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 
LOGIN PLAIN')dnl

sendmail宏定义说明
divert(n) 为m4定义一个缓冲动作,当n=-1时缓冲被删除,n=0时开始一个新缓冲
OSTYPE 定义宏所使用的操作系统,该宏允许m4程序增加同相关操作系统相关的
文件
Domain 定义MTA将使用哪些域来传输邮件
Feature 定义配置文件中使用的一个特定的功能集
Define 定义配置文件中的一个特定的选项值
MASQUERADE_AS 定义sendmail来应答邮件的其它主机名
MAILER 定义sendmail使用的邮件传输方法
dnl 注释

完成sendmail.mc文档的编写后就可以用m4程序生成正式的sendmail.cf配置文档。语法如
下:
# m4 sendmail.mc >; sendmail.cf
也可以用源码目录树下的cf/cf/Build命令生成。前提是你要在该目录下有一个sendmail.mc
文档。语法如下:
# ./Build sendmail.cf 

ok,接着就可以把sendmail.cf and submit.cf文档安装到/etc/mail目录中的,语法如下:
# ./Build install-cf
其实也可以自已用cp命令拷贝的啦。记得把sendmail.mc文档也拷贝一份到/etc/mail目录,
以便以后修改配置时可重新生成sendmail.cf文档。

ok,接着到/etc/mail目录下配置一些文档。
# cd /etc/mail 
# echo 'examply.com' >;>; local-host-names  接收邮件的主机名
# echo 'localhost    RELAY'  >;>; access  用来拒绝或允许来自某个域的邮件,本例允许
本地转发。
# makemap hash access < access  生成access.db数据库
# touch domaintable  用来把旧域名映射互新域名
# makemap hash domaintable < domaintable 
# touch mailertable  来覆盖向指定域的路由
# makemap hash mailertable < mailertable 
# touch trusted-users 
# touch virtusertable  用来把用户和域名映射到其它地址
# makemap hash virtusertable < virtusertable 
# chown root:wheel /var/spool/mqueue/ 
# chmod 700 /var/spool/mqueue 
# touch aliases  别名数据库,文本形式。可参照源码目录树下
sendmail/aliases文件。
# newaliases                   从文本文件中创建一个新的别名数据库文件。
# sendmail -v -bi 调试启动。
/etc/mail/aliases: 42 aliases, longest 10 bytes, 432 bytes total
如果出现以上提示信息,则启动成功。可用以下命令正式启动:
# sendmail -bd -q30m
该命令以后台进程方式(-bd)运行,并使其每隔30分钟(-q30m)轮询一次未发送邮件队
列,检查是否有新邮件。

服务器启动后,可以用telnet连接服务器。
# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 test.tigerhead ESMTP Sendmail 8.12.10/8.12.10; Tue, 30 Mar 2004 14:50:14 +0800
ehlo test 你输入的命令,按回车结束。
250-test.tigerhead Hello LOCALHOST.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
250-DELIVERBY
250 HELP
以250-开头的为服务器的响应信息。注意倒数第三行,这就是成功配置smtp验证的显示。
输入quit离开。



安装完成后为确保系统安全,还需调整一些目录的权限。可参考sendmail源码目录下
sendmail/SECURITY文档。
# chmod 0640 /etc/mail/aliases /etc/mail/aliases.{db,pag,dir}
# chmod 0640 /etc/mail/*.{db,pag,dir}
# chmod 0640 /etc/mail/statistics /var/log/sendmail.st
# chmod 0600 /var/run/sendmail.pid /etc/mail/sendmail.pid
-r-xr-sr-x root   smmsp ... /PATH/TO/sendmail
drwxrwx--- smmsp  smmsp ... /var/spool/clientmqueue
drwx------ root   wheel ... /var/spool/mqueue
-r--r--r-- root   wheel ... /etc/mail/sendmail.cf
-r--r--r-- root   wheel ... /etc/mail/submit.cf

6、sendmail功能介绍
aliases 别名数据库设置
test: test1,test2,test3 设置test群组别名,test不是一个实际的用户,只是一个别名。发给
test的信,test1,2,3都可收到。
test: test,testbak 在testbak邮箱中备份test的邮件。
test: test,test@163.com 远程邮件备份,原理同上。
test:   :include: /etc/mail/userlist 使用用户列表设置群组。
userlist格式如下:
test1, /
test2, /
test3, /
test4
关于系统预设aliases,由于sendmail预设用mailer-daemon and postmaster作为资料传送者,
或邮件退回的帐号,但系统实际没有这两个帐号,所以要如下设置别名。
mailer-daemon:  postmaster 
postmaster:     root 
设置完成后不要忘了用newaliases命令生成数据库。

~/.forward文件配置
其实该文档的作用和aliases数据库的作差不多啦,都是配置别名,做邮件转发的。因为alises
只能由管理员控制,个人用户不能修改,所以就可以在个人的目录下建立一个转寄文档。以
设置个人的邮件转寄列表。文档格式如下:
test
test1
test2
test3
and os on
但由于个人用户安全意识差,如果设置不当会有安全漏洞,不建议使用。

access访问控制列表设置
92.168 RELAY
test.NET OK
test.COM REJECT
test.COM 550 SORRY,WE DON'T ALLOW SPAMMERS HERE
test.ORG DISCARD
Ok--远程主机可以向你的邮件服务器发送邮件;
RELAY--允许中转;
REJECT--不能向你的邮件服务器发邮件和不能中转;
DISCARD--发来的邮件将被丢弃,同时并不向发送者返回错误信息。
nnn text-- 发来的邮件将被丢弃,但sendmail将会向发送者返回nnn确定的smtp代码和text
变量确定的文本描述。
设置完成后要用makemap hash access.db < access命令生成数据库。

mailq邮件队列查询命令。
Q-ID 邮件id号。
Size 邮件容量。
Q-Time 邮件进入队列(也就是/var/spool/mqueue目录)的时间和不能邮寄的原因。
Sender/Recipient 发信和收信人的邮箱地址。

mailstats邮寄状态查询命令,可查询sendmail运行作至今邮件收发总计资料。
M     :
msgsfr:发送的邮件数量。
bytes_from:邮件容量 
megsto:收到邮件的数量。 
bytes_to:同上
msgsrej:邮件deny的次数。 
msgsdis:邮件discard的次数。 
Mailer :esmtp对外邮件 ,local本地邮件 。

mail邮件命令
mail 查看/var/spool/mail/目录下自已邮箱内容。以q退出把看过的邮件保存在
~/mbox中。
mail test@example.com 直接发邮件给人。
mail -s 'title text' test@example.com < mail.txt  把文档中内容邮寄出去。
mail -f ~/mbox 查看home目录下邮箱内容。
用mail发附件也是可行,要用到uuencode and uudecode命令进行编码。
编码:uuencode [file] name          example:uuencode hello hello>;hello.uue   default input 
is stdin;default output is stdout.
解码:uudecode [-o outfile] name    example:uudecode hello.uue 可以用-o选项输出另外一个
文件名。
# uuencode ~/.bashrc bashrc | mail -s 'test uuencode' test@example.com


 cryboy2001 回复于:2005-01-11 13:25:08

支持!................


 abel 回复于:2005-01-11 13:46:50

寫的非常好...
如果有些地方再引申會更好 ..(site.config.m4 , sendmail.mc )

若 sendmail.mc 中的東西能多講一點就更好了...
(dnsbl ? , 8.13.x 有些新功能... )
另外, 
FEATURE(`accept_unresolvable_domains')dnl 
這一行不要用, 


Jan 11 13:39:17 mydomain sendmail[10335]: j0B5XvZX010335: ruleset=check_rcpt, arg1=<news@mydomain.net.tw>;, relay=c-064-186-233-196.oc1.redwire.net [64.186.233.196], reject=451 4.1.8 Domain of sender address wthtr6t77@ujmmj.hellomall.com.tw does not resolve


不然不會做如上的檢查(至少可以減少不少的 spam)


 yjnet 回复于:2005-01-11 22:34:38

谢谢支持,我会不断完善该文的。


 sxlhb 回复于:2005-01-12 20:32:23

能不能講一下SASL主要是起什麼作用,我用red hat9.0配置server,好像沒有用到SASL,很好奇!


 yjnet 回复于:2005-01-12 22:43:44

SASL是一套认证库,有来作SMTP服务的认证。


 jyhuang 回复于:2005-01-17 19:32:11

不错


 shy82228 回复于:2005-02-01 14:59:06

是不是针对所有的系统环境,请问楼主的系统环境是?


 yjnet 回复于:2005-02-15 23:44:16

我当时安装sendmail时的系统是redhat8.0的。


 硬纸卡片 回复于:2005-03-25 11:48:23

连pop3支持都没有啊

ps:楼主的安装方式和鸟哥私房菜的几乎无二。


 zhoumi 回复于:2005-03-29 11:23:11

我照着你的文档,一步一步的安装配置。都完成后。outlook里面(选择,我得服务器需要身份认证)发信的时候,总弹出用户和口令的窗口。让我输入。我输入的用户和口令,肯定是正确的,但是就是不能通过。我请教老大。这个问题不知道你,遇到过没有?怎么解决?


 zhoumi 回复于:2005-03-29 11:25:11

我照着你的文档,一步一步的安装配置。都完成后。outlook里面(选择,我得服务器需要身份认证)发信的时候,总弹出用户和口令的窗口。让我输入。我输入的用户和口令,肯定是正确的,但是就是不能通过。我请教老大。这个问题不知道你,遇到过没有?怎么解决?


 sinboy2002 回复于:2005-08-12 00:03:51

我遇到跟上面的朋友几乎相同的问题.但我是可以收邮件但不能收邮件.
也总是弹出输入密码窗口,并且可以确定密码是无误的,可就是提示
invalid login!
不知何解?

请大虾解答


 gudai 回复于:2006-03-09 10:52:54

转自
http://www.linuxsir.org/bbs/showthread.php?t=179390

sendmail.mc配置文件的解释 

--------------------------------------------------------------------------------

我在书(Redhat Linux 9 宝典)上看到一篇sendmail.mc的注释文档,觉得挺好的就摘录了下来,与大家分享。希望对大家有帮助。当然不对的和不足的地方,请大家改正。

Sendmail.mc文件的最前面几行完成一些辅助工作,
divert(-1)dnl 
在生成配置文件时删除额外的输出。
dnl #
dnl # This is the sendmail macro config file for m4. If you make changes to
dnl # /etc/mail/sendmail.mc, you will need to regenerate the
dnl # /etc/mail/sendmail.cf file by confirming that the sendmail-cf package is
dnl # installed and then performing a
dnl #
dnl # make -C /etc/mail
dnl #
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
将sendmail所需的规则包含进来。
VERSIONID(`setup for Red Hat Linux')dnl
指出配置文件是针对Red Hat Linux,(可以任意值)
OSTYPE(`linux')dnl
必须设置为linux以获得sendmail所需文件的正确位置。
dnl #
dnl # Uncomment and edit the following line if your outgoing mail needs to
dnl # be sent out through an external mail server:
dnl #
dnl define(`SMART_HOST',`smtp.your.provider')
指定邮件服务器中继。
dnl #
define(`confDEF_USER_ID',``8:12'')dnl
指定以mail用户(UID:8)和mail组(GID:12)的身份运行守护进程。
Define(`confTRUSTED_USER`,`SMMSP`) dnl
将smmsp添加到sendmail的可信用户列表中,其他的可信用户是root,uucp,daemon(smmsp用户被赋予部分sendmail假脱机目录和邮件数据库文件的所有权。
dnl define(`confAUTO_REBUILD')dnl
如果有必要,sendmail将自动重建别名数据库。
define(`confTO_CONNECT', `1m')dnl
将sendmail等待初始连接完成的时间设置为1分钟(1m)
define(`confTRY_NULL_MX_LIST',true)dnl
设为true,如果接收服务器是一台主机最佳的MX,试着直接连接那台主机。
define(`confDONT_PROBE_INTERFACES',true)dnl
设为true,sendmai守护进程将不会把本地网络接口插入到已知等效地址列表中。
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
设置分发接收邮件的程序(默认是procmail)。
define(`ALIAS_FILE', `/etc/aliases')dnl
设置分发接收邮件的邮件别名数据库。
dnl define(`STATUS_FILE', `/etc/mail/statistics')dnl
设置分发接收邮件的邮件统计文件的位置。
define(`UUCP_MAILER_MAX', `2000000')dnl
设置UUCP邮件程序接收的最大信息(以字节计)
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
设置用户数据库(在该数据库中可替换特定用户的默认邮件服务器)的位置。
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
强制sendmail使用某种邮件协议,例如,authwarnings表明使用X-Authentication-Warning 标题,并记录在日志文件中;novrfy和noexpn设置防止请求相应的服务,restrictqrun选项禁止sendmail使用-q选项。
define(`confAUTH_OPTIONS', `A')dnl
设置由于SMTP验证。
dnl #
dnl # The following allows relaying if the user authenticates, and disallows
dnl # plaintext authentication (PLAIN/LOGIN) on non-TLS links
dnl #
dnl define(`confAUTH_OPTIONS', `A p')dnl 使用明文登入。
dnl # 
dnl # PLAIN is the preferred plaintext authentication method and used by
dnl # Mozilla Mail and Evolution, though Outlook Express and other MUAs do
dnl # use LOGIN. Other mechanisms should be used if the connection is not
dnl # guaranteed secure.
dnl #
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
允许sendmail使用明文口令以外的其他验证机制。
dnl #
dnl # Rudimentary information on creating certificates for sendmail TLS:
dnl # make -C /usr/share/ssl/certs usage
dnl #
dnl define(`confCACERT_PATH',`/usr/share/ssl/certs')
dnl define(`confCACERT',`/usr/share/ssl/certs/ca-bundle.crt')
dnl define(`confSERVER_CERT',`/usr/share/ssl/certs/sendmail.pem')
dnl define(`confSERVER_KEY',`/usr/share/ssl/certs/sendmail.pem')
以上四行启用证书。
dnl #
dnl # This allows sendmail to use a keyfile that is shared with OpenLDAP's
dnl # slapd, which requires the file to be readble by group ldap
dnl #
dnl define(`confDONT_BLAME_SENDMAIL',`groupreadablekeyfile')dnl
如果密钥文件需要被除sendmail外的其他应用程序读取,那么显示以上行。
dnl #
dnl define(`confTO_QUEUEWARN', `4h')dnl
设置邮件发送被延期多久之后向发送人发送通知消息,默认为4小时。
dnl define(`confTO_QUEUERETURN', `5d')dnl
设置多长时间返回一个无法发送消息。
dnl define(`confQUEUE_LA', `12')dnl
dnl define(`confREFUSE_LA', `18')dnl
以上二行分别设置排队或拒绝的接收邮件的系统负载平均水平。
define(`confTO_IDENT', `0')dnl
设置等待接收IDENT查询响应的超时值(默认为0,永不超时)

FEATURE宏用于设置一些特殊的sendmail特性。
dnl FEATURE(delay_checks)dnl
FEATURE(`no_default_msa',`dnl')dnl
FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
Smrsh定义/usr/sbin/smrsh 作为sendmail用来接受命令的简单shell。
FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl
设置mailertable数据库位置
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl
设置`virtusertable数据库位置
FEATURE(redirect)dnl
允许拒绝接收已移走的用户的邮件并提供其新地址。
FEATURE(always_add_domain)dnl
always_add_domain使得在所有发送的邮件上为主机名添加本地域名。
FEATURE(use_cw_file)dnl
表明sendmail使用/etc/mail/local-host-names文件为该邮件服务器提供另外得主机名
FEATURE(use_ct_file)dnl
表明sendmail使用/etc/mail/trusted-users文件提供可信用户名(可信用户可用另一个用户名发送邮件而不会收到警告消息)。
dnl #
dnl # The -t option will retry delivery if e.g. the user runs over his quota.
dnl #
FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl
设置用于递送本地邮件得命令(procmail)及其选项($h:hostname,$u:user name).
FEATURE(`access_db',`hash -T<TMPF> -o /etc/mail/access.db')dnl
设置访问数据库得位置,该数据库指出允许哪些主机通过此服务器中继邮件。
FEATURE(`blacklist_recipients')dnl
启用该服务器为所选用户、主机或地址阻塞接收邮件的功能。(access_db和blacklist_recipients特性对防止垃圾邮件有用)。
EXPOSED_USER(`root')dnl
dnl #
dnl # The following causes sendmail to only listen on the IPv4 loopback address
dnl # 127.0.0.1 and not on any other network devices. Remove the loopback
dnl # address restriction to accept email from the internet or intranet.
dnl #
dnl # DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
允许接受本地主机创建的邮件,如果要允许接收从Internet或其他网络接口(如局域网)传入的邮件,一定要注释掉此行。
dnl #
dnl # The following causes sendmail to additionally listen to port 587 for
dnl # mail from MUAs that authenticate. Roaming users who can't reach their
dnl # preferred sendmail daemon due to port 25 being blocked or redirected find
dnl # this useful.
dnl #
dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
dnl #
dnl # The following causes sendmail to additionally listen to port 465, but
dnl # starting immediately in TLS mode upon connecting. Port 25 or 587 followed
dnl # by STARTTLS is preferred, but roaming clients using Outlook Express can't
dnl # do STARTTLS on ports other than 25. Mozilla Mail can ONLY use STARTTLS
dnl # and doesn't support the deprecated smtps; Evolution <1.1.1 uses smtps
dnl # when SSL is enabled-- STARTTLS support is available in version 1.1.1.
dnl #
dnl # For this to work your OpenSSL certificates must be configured.
dnl #
dnl DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl
dnl #
dnl # The following causes sendmail to additionally listen on the IPv6 loopback
dnl # device. Remove the loopback address restriction listen to the network.
dnl #
dnl # NOTE: binding both IPv4 and IPv6 daemon to the same port requires
dnl # a kernel patch
dnl #
dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')dnl
dnl #
dnl # We strongly recommend not accepting unresolvable domains if you want to
dnl # protect yourself from spam. However, the laptop and users on computers
dnl # that do not have 24x7 DNS do need this.
dnl #
FEATURE(`accept_unresolvable_domains')dnl
启用accept_unresolvable_domains,使得能够接收域名不可解析的主机发送来的邮件。如果有需要使用邮件服务器的客户机(如拨号计算机),启用该选项。关闭该选项有助于防止垃圾邮件。
dnl #
dnl FEATURE(`relay_based_on_MX')dnl
dnl # 
dnl # Also accept email sent to "localhost.localdomain" as local email.
dnl # 
LOCAL_DOMAIN(`localhost.localdomain')dnl
使域名`localhost.localdomain作为本地计算机名被接受。
dnl #
dnl # The following example makes mail from this host and any additional
dnl # specified domains appear to be sent from mydomain.com
dnl #
dnl MASQUERADE_AS(`mydomain.com')dnl
dnl #
dnl # masquerade not just the headers, but the envelope as well
dnl #
dnl FEATURE(masquerade_envelope)dnl
dnl #
dnl # masquerade not just @mydomainalias.com, but @*.mydomainalias.com as well
dnl #
dnl FEATURE(masquerade_entire_domain)dnl
dnl #
dnl MASQUERADE_DOMAIN(localhost)dnl
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl
dnl MASQUERADE_DOMAIN(mydomainalias.com)dnl
dnl MASQUERADE_DOMAIN(mydomain.lan)dnl
MAILER(smtp)dnl
MAILER(procmail)dnl 




_____________________________________
shaphen


 ha_ 回复于:2006-03-17 00:13:09

这片文档和
http://bbs.chinaunix.net/viewthread.php?tid=708522&extra=page%3D1&page=1
差别这么多.怎么没有提到DNS的设置.DNS没设置好那么foxmail怎么填写邮件服务器地址?难道是直接填写IP?

谢谢.


 xy-coordinate 回复于:2006-03-17 09:22:24

引用:原帖由 ha_ 于 2006-3-17 00:13 发表
这片文档和
http://bbs.chinaunix.net/viewthread.php?tid=708522&extra=page%3D1&page=1
差别这么多.怎么没有提到DNS的设置.DNS没设置好那么foxmail怎么填写邮件服务器地址?难道是直接填写 ... 



他是源码安装的,我是安装redhat的rpm包的!

你仔细看看吧!


 ssrehngjg 回复于:2006-04-28 14:06:45

我运行 makemap hash access < access(是用touch生成的文件)
出现这个错误:
makemap: Need to recompile with -DNEWDB for hash support


 lsxkobe 回复于:2006-05-25 17:07:08

这么好的文章我才看到,赶紧消化!!!


 yourose 回复于:2006-10-12 18:13:42

引用:原帖由 zhoumi 于 2005-3-29 11:25 发表
我照着你的文档,一步一步的安装配置。都完成后。outlook里面(选择,我得服务器需要身份认证)发信的时候,总弹出用户和口令的窗口。让我输入。我输入的用户和口令,肯定是正确的,但是就是不能通过。我请教老大 ... 


我也是你一样的问题啊:cry:
是不是认证没有通过呢?


 刘五十三 回复于:2006-10-13 11:13:46

引用:原帖由 yourose 于 2006-10-12 18:13 发表

我也是你一样的问题啊:cry:
是不是认证没有通过呢? 


/etc/init.d/saslauthd 启动了没有,看看maillog


 xxd1019 回复于:2007-01-27 16:39:23

我选择我喜欢


 dragonets 回复于:2007-01-29 09:00:51

为什么不用Redhat AS4 呢?我感觉AS4只需要几个简单的修改,就可以达成楼主的效果。


 feixiang533 回复于:2007-01-29 18:47:15

谢谢,讲的很详细!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值