最一段日子工作得很不开心,原因多多,回想当年自己学linux的时候真是无限的感慨。那个时候我是多么的认真、多么的努力啊,我的努力也得到认可,可现在呢?打开过去的笔记真的,全是眼泪啊。最近很想写blog,主要是因为我已经不做linux很多年了,今天把笔记拿出来,在温习一下,并记录在blog上,慰记一下自己。 当年使用的系统是redhat 8 ,目的是搭建成公司的Linux邮件服务器,能够使用web方式和outlook分别收发邮件,并做身份验证。我看过很多文章,都说通过编译源代码安装,配置sendmail.mc文件,不过我觉得这样做比较麻烦,好像容易出错,我从没有试验过,我都是直接修改 /etc/mail/sendmail.cf文件来配置sendmail的,只是在做身份验证的时候才使用sendmail.mc文件的,不过这不影响最终效果。 假设邮件的域名为abc.com,邮件的MX记录主机为 mail.abc.com 首先备份sendmail.cf文件。使用vi 编辑sendmail.cf文件。1.修改 Cwlocalhost localdomain一行为 Cwlocalhost abc.com mail.abc.com2.修改 O DaemonPortOption=Port=smtp,Addr=127.0.0.1,Name=MTA这行,将127.0.0.1 改为本机的IP或0.0.0.0都可以。 3.需要安装光盘上的imap文件,这个文件的用处是充当pop服务器。4.修改access文件,这个文件记录着在没有身份验证的情况下,那些网段的用户可以使用这台邮件服务器发信。localhost.localdomain RELAYlocalhost RELAY127.0.0.1 RELAYabc.com RELAYmail.abc.com RELAY10.0.0 RELAY这样就允许了10.0.0网段的用户通过该邮件服务器发送邮件了。不要忘了,修改access文件后不能马上生效,要使用命令将其写入数据,如下makemap hash /etc/mail/access.db < /etc/mail/access 5.在local-hosts-name 文件中加入abc.com 和mail.abc.com两行。这样最简单的邮件系统sendmail就可以使用了。 6.关于身份验证部分如下,参考了CU中peng的精华帖子。修改sendmail.mc文件。1、2是去掉注解的,是打开相应的认证机制,主要是为了支持outlook 3、4是添加的,设置相应的mta and msa的所用端口。 5、6要注掉。 1、TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl 2、define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl 3、DAEMON_OPTIONS(`Port=25,Name=MTA')dnl 4、DAEMON_OPTIONS(`Port=587,Name=MSA,M=Ea')dnl 5、dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA') 6、dnl FEATURE(`accept_unresolvable_domains')dnl 最后保存。 二、编译sendmail.mc 生成sendmail.cf文件 # m4 /etc/mail/sendmail.mc >; /etc/sendmail.cf #/etc/rc.d/init.d/sendmail restart --重起sendmail服务。 三、检测编译结果。 1、检测SASL被编译到sendmail中。 #/usr/sbin/sendmail -d0.1 -bv root |grep SASL 输出类似如下: NETUNIX NEWDB NIS PIPELINING SASL SCANF STARTTLS TCPWRAPPERS 保证你看到SASL就是正确的。 2、检测25端口: # telnet localhost 25 Trying 127.0.0.1..... Connected to localhost (127.0.0.1). Escape character is '^]'. 220 webmail.readchina.com ESMTP SENDMAIL 8.12.5/8.12.5;THU,13 FEB 2003.19:12:59 0800 EHLO localhost 250-webmail.readchina.com hello localhost [127.0.0.1],pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH GSSAPI LOGIN PLAIN 250-DELIVERBY 250-HELP 出现 AUTH GSSAPI LOGIN PLAIN 就说明成功了。
|