/ 中存储网

CentOS配置sendmail smtp认证收发邮件

2014-08-01 11:58:35 来源:中存储网
折腾了三四天,终于基本的配出来了吧也算。有smtp验证,使用FOXMAIL可以用它发送邮件,并能收取邮件,POP3收邮件那部分还没研究,所以没配出来呢还。
这个就是用centOS安装盘上自带的sendmail和sasl2,自己去下新的编译装也行,但很麻烦,尤其是sendmail的配置文件是相当的麻烦。用安装盘上的,配置文件等都是现成的了,所以需要做的工作要相对轻松的多。 首先编辑/etc/mail/sendmail.mc文件,关于验证主要就是下面这二行:
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
这两行默认是被dnl(注释掉的)掉的,要去掉它的注释,TRUST_AUTH_MECH”的作用是使sendmail不管access文件中如何设置, 都能relay那些通过EXTERNAL, LOGIN, PLAIN, CRAM-MD5或DIGEST-MD5等方式验证的邮件,注意这里是对需要relay的邮件进行验证,这点很重要,只有这样通过验证的邮件才会被 relay以防止sendmail服务器被滥用,confAUTH_MECHANISMS的作用是确定系统的认证方式。Outlook Express支持的认证方式是LOGIN。
另外要提的一点是,注意一下这两行的最后一句注释:Please remember that saslauthd needs to be running for AUTH. 这说明要使用sendmail进行验证需要使用系统的saslauthd服务,那个服务有可能没有打开,所以需要打开。
然后将DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl这行dnl(注释)掉,不然从其他计算机使用foxmail等客户端都将无法使用sendmail发邮件,因为这行的设置表示 只接收本机的邮件。将这行注释掉也可以,或者改成DAEMON_OPTIONS(`Port=smtp,Name=MTA')dnl也可以。总之如果想进 行邮件接收的话,就不要在这行里加入M=a的配置(注意大小写),因为它是对connection进行验证,这样对接收的邮件,sendmail也会先要 求对这个连接验证,而其他邮箱发给你的邮件的这个连接是无法进行验证的。
最后在/etc/mail/local-host-names文件中添加上本机的域名,如果没有域名,写ip也可以,这样sendmail就会认为这些域 名的邮件要在本机进行投递,不然照上面的配置的话,没有这个配置,从其他的邮件服务器发给自己的邮件也得需要进行验证,但从其他邮件服务器过来的邮件那绝 不可能有sendmail服务器需要的验证信息的,这样就不可能收到别的邮箱发过来的信了。但是在这个文件中进行了配置,就可以收到从其他邮件服务器比如 163发过来的邮件。
然后开启saslauthd服务,重启sendmail(service sendmail restart),还有防火墙要开启25端口。
基本上的配置步骤就是这些而已,这样配完后使用foxmail来用这个sendmail发送邮件就得通过验证才可以发送,并且可以接收到其他邮件服务器发来的邮件。其他的更多的配置,就根据需要再进行研究跟设置了。
其他一些与sendmail的相关和需要注意的地方:
可以telnet localhost 25然后ehlo localhost 看看返回的信息里有没有auth开头的行。有的话就是现在的sendmail有smtp的验证。
/usr/lib/sasl2(版本1的话就是sasl)/Sendmail.conf:这个文件也很重要,使用的密码检查方法就在这里配置。配错了也将导致验证失败。现在一般使用saslauthd
可以关闭sendmail服务,直接使用sendmail -bd -OLOGLEVEL=14 -Am来启动sendmail得到更多的日志信息,日志被放在/var/log/maillog和/var/log/messages中。
如果从编译开始装的话,网上有很多参考文章,我也试了一次,主要是sendmail.mc这个文件弄起来是麻烦,得从头写,不如直接装好的有现成的改下的容易,另外就是有些介绍文章使用的sasl还是1.几的版本,跟现在的2.几在配置等等上,还是有些出入的,需要注意。