一、所需系统:
Linux (redhat 9.0以上各个版本均可)
二、所需组件(根据安装linux系统版本的不同,各组件版本号可能会有差异)
Imap-xxxxx(redhat 9.0版需要,其它版本不需要)
sendmail-cf-8.14.1-4.2.fc8
sendmail-8.14.1-4.2.fc8
m4-1.4.10-1.fc8
cyrus-sasl-lib-2.1.22-7
cyrus-sasl-md5-2.1.22-7
cyrus-sasl-plain-2.1.22-7
cyrus-sasl-2.1.22-7
cyrus-sasl-gssapi-2.1.22-7
三、/usr/lib/sasl2/Sendmail.conf与/usr/lib/sasl2/smtpd.conf内容设置
1、将两个文件内容修改成如下
#cat /usr/lib/sasl2/Sendmail.conf
pwcheck_method:saslauthd
#cat /usr/lib/sasl2/smtpd.conf
pwcheck_method:saslauthd
2、启动saslauthd服务
#service saslauthd restart
#chkconfig saslauthd on (设置成自启动)
3、检测SASL是否已经生效
#sendmail -d0.1 –bv root |grep SASL(如果包含SASL,则说明SASL已经生效了)
NETUNIX NEWDB NIS PIPELINING SASLv2 SCANF SOCKETMAP STARTTLS
四、修改/etc/mail/sendmail.mc文件按如下方法修改
1、dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl(48行前面取消dnl注释)
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
2、dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl(49行前面取消dnl注释)
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
3、dnl DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl(112行前面加dnl注释掉)
4、dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl(119行前面取消dnl注释,并修改成如下内容)
DAEMON_OPTIONS(`Port=25, Name=MSA')dnl
注意:sendmail8.13不用这么设置,否则系统日志中将出现如下错误信息:
Oct 15 14:34:25 router sendmail[23756]: NOQUEUE: SYSERR(root): opendaemonsocket: daemon MSA: cannot bind: Address already in use
Oct 15 14:34:25 router sendmail[23756]: daemon MSA: problem creating SMTP socket
5、执行如下命令生成sendmail.cf
#m4 /etc/mail/sendmail.mc>/etc/mail/sendmail.cf
五、重启sendmail服务
#killall –HUP sendmail或#service sendmail restart
六、检验smtp验证是否成功
# telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 localhost.localdomain ESMTP Sendmail 8.14.1/8.14.1; Fri, 17 Apr 2009 14:05:50 +0800
ehlo xxx.xxx.xxx.xxx(服务器名称)
250-localhost.localdomain Hello xxx.xxx.xxx.xxx [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN(出现此行,就说明配置成功)
250-DELIVERBY
250 HELP
七、配置dovecot
1、编辑/etc/dovecot.conf,若如下行被注释,则取消
protocols = imap imaps pop3 pop3s
2、启动dovecot服务(POP3
#service dovecot restart
#chkconfig dovecot on (设置为自动启动)
八、添加邮件服务器域名到/etc/mail/local-host-name中
如:mail.xxx.xxx.com等
十、个人理解
1、局域网内用户使用客户端收发邮件软件通过局域网内的同一台邮件服务器相互传递邮件,邮件服务器不进行SMTP认证,因为是在同一台邮件服务器内部用户间传递邮件,没有涉及到其它邮件服务器。(此时用户之间传递邮件就和没有SMTP认证一样,对于客户端收发邮件软件设置中的SMTP认证选项是一个可选项)
2、局域网内用户通过局域网内的一台邮件服务器向互联网用户发送邮件(涉及到其它邮件服务器及发生RELAY):
A、邮件服务器上ACCESS文件进行了相应的设置,其中有相关网段允许RELAY 的信息,如此主机就在允许的网段内则发送邮件邮件服务器不进行SMTP认证
B、邮件服务器上没有设置ACCESS文件,则网内用户发往互联网用户的邮件在邮件服务器上转发时邮件服务器要进行SMTP认证,对于非法用户将被拒绝转发。
3、邮件系统中已经存在的邮箱帐户符合以上规则。系统中不存在的帐户进行SMTP认证将阻止其转发邮件,不管是对外转发还是对内部发送。