配置sendmail是一件大而复杂的工作,但也不完全都是这样,与其他一些网络服
务器系统只安装SMTP服务器软件的情况相比,Linux已经配置好了多数的设置。在多数系
统下,缺省配置都能良好的运行。主要的一些配置参数建议不要随意更改。
所需系统资源:
配置文件:
文件 来源
/etc/sendmail.cf sendmail-8.9.3-20.i386.rpm
/etc/sendmail.cw sendmail-8.9.3-20.i386.rpm
相关工具:
文件 来源
/etc/rc.d/init.d/sendmail sendmail-8.9.3-20.i386.rpm
配置方案
1./etc/sendmail.cf sendmail的主配置文件
作用:
控制sendmail运行时的配置。完整的sendmail配置应该包括7部分:
Local Info(本地信息):这部分定义了本地主机的信息
Options(选项):用来设置定义sendmail环境的选项。
Message Precedence(消息的优先级):sendmail消息的优先级
Trusted Users(信任用户):定义发送邮件时允许改变发送地址的用户
Format of Headers(头格式):定义在sendmail中插入的邮件头信息
Rewriting Rules(改写规则):这部分保存着改写邮件地址命令使用该
命令可以将邮件地址从用户邮件程序的地址形式改写为邮件发送程序所需要的地址形式。
Mailer Definition(邮寄者说明):定义发送邮件的程序,改写规则是邮件者使用的规
则,在本部分定义。其实,配置一个完整的sendmail服务器是一件极其复杂的工程,然而
对于我们所适用的范围来说,很多的功能是没有必要的,所以我想以一个简单的例子来说
明我们的配置,也就是说,没有被提出的配置在一般情况下是不需要我们的管理员来考虑
的,你按照默认的做就可以了。
实例:
V8/Berkeley
Cwlocalhost
Fw /etc/sendmail.cw
CP.
DYuunet.uu.net
CPUUCP
DS thj.mycompany.com
CO @ % !
C..
C[[
Kmailertable hash -o /etc/mail/mailertable
#制作db库
Kdomaintable hash -o /etc/mail/domaintable
Kgenerics hash -o /etc/mail/genericstable
Kvirtuser hash -o /etc/mail/virtusertable
Kaccess hash -o /etc/mail/access
Kmxserved bestmx -z: -T
Kresolve host -a -T
FR-o /etc/mail/relay-domains
DR
DH
Kdequote dequote
CM root
DM thj.mycompany.com
#设置邮件服务器名称
DnMAILER-DAEMON
CPREDIRECT
DZ8.9.3
O SevenBitInput=False
O EightBitMode=pass8
O AliasWait=10
O AliasFile=/etc/mail/aliases,/etc/mail/majordomo
O MinFreeBlocks=100
#规定最小空闲块
O MaxMessageSize=1000000
#指定用户一次最大发送的邮件大小
O BlankSub=.
O HoldExpensive=False
O DeliveryMode=background
O AutoRebuildAliases=true
O TempFileMode=0600
O HelpFile=/etc/mail/sendmail.hf
O SendMimeErrors=True
O ForwardPath=$z/.forward.$w:$z/.forward
O ConnectionCacheSize=2
O ConnectionCacheTimeout=5m
O UseErrorsTo=False
O LogLevel=9
#记录到日志文件的事件等级
O CheckAliases=False
O OldStyleHeaders=True
O PrivacyOptions=authwarnings,noexpn,novrfy
O QueueDirectory=/var/spool/mqueue
O Timeout.queuereturn=4d
O Timeout.queuewarn=4h
O SuperSafe=True
O StatusFile=/var/log/sendmail.st
O DefaultUser=8:12
O SmtpGreetingMessage=$j Sendmail $v/$Z;
$b
O UnixFromLine=From $g $d
O OperatorChars=.:%@!^/[]+
Pfirst-class=0
Pspecial-delivery=100
Plist=-30
Pbulk=-60
Pjunk=-100
Ft -o /etc/mail/sendmail.ct
Troot
Tdaemon
Tuucp
R$* $#error $@ 5.7.1 $: "550 Relaying denied"
#以上是Linux默认的选项,不允许客户机使用mail服务器收发邮件,如果允许客户机
收发的话应将上边一句话改成
R$- $@ok
#注意:中间是两个tab键
#一下是邮件头信息
H?P?Return-Path: <$g>
HReceived: $?sfrom $s $.$?_($?s$|from $.$_)
H?D?Resent-Date: $a
H?D?Date: $a
H?F?Resent-From: $?x$x <$g>$|$g$.
H?F?From: $?x$x <$g>$|$g$.
H?x?Full-Name: $x
H?M?Resent-Message-Id: <$t.$i@$j>
H?M?Message-Id: $t.$i@$j
#以上是邮件头信息
2.需要执行touch /etc/mail/aliases 和 touch /etc/mail/majordomo来创建两
个文件,然后重新启动sendmail,利用sendmail.cf里生成db库的配置来生成两个库文件:
aliases.db和majordomo.db;当然,也可以通过执行makemap hash mailertable < mailertable
来生成新的db,这样可以不重新启动。
测试及管理方法
1. 可以通过执行/etc/rc.d/init.d/sendmail restart来使更改的配置生效。
2. 通过执行 fetchmail -u yourname yourserver 来为没有邮件用户制定他们的口令,
用户需要在客户端作相应的设置。
3.应该打开pop3服务,即更改配置文件
4.在服务器上可以通过执行 echo test | /usr/sbin/sendmail -v thj@mycompany.com
来测试建立好的邮件用户是否能够正常工作。
其实我们只要设置其中的几个地方就可以实现mail服务器的功能,这是因为sendmail有很
强的适用性,并且它是在不断更新的。所以现在提供给我们的sendmail的配置方案已经经
过实践检验,不需要管理员做太大改动,就可以实现强大的sendmail功能。