免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1637 | 回复: 0
打印 上一主题 下一主题

Sendmail+procmail [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-03 18:08 |只看该作者 |倒序浏览

Sendmail+procmail
项目需求:由于公司想拥有自己独立的邮件系统,所以决定搭建自己的邮件系统,并且为了防止垃圾邮件,需要搭建procmail作为邮件过滤系统,

硬件环境:Red hat Enterprise 5.3

软件环境: sendmail.8.14.2.tar.gz (邮件系统)
         procmail-3.22.tar.gz(过滤系统)

安装sendmail
1:安装前准备
首先必须得安装好编译软件的平台,例如:gcc、等编译环境的必要平台
还有安装m4(用在sendmail.mc文件生成sendmail.cf文件的时候实用)
2:安装
#tar –zxf sendmail.8.14.2.tar.gz   //解压文件

#cd /usr/local/sendmail.8.14.2      //进入解压后的目录

#ls                             //查看目录里面的文件
如果有configure 这个文件说明就可以做编译前的准备了,如果没有看有没有makefile.PL,如果有的话,可以用perl 来生成makefile文件,如果没有makefile.PL的话,那肯定有makefile文件,所以就不需要编译前的准备了,直接编译。
#make         //编译

#make install     //安装

3:测试sendmail服务
#service sendmail restart
Shutting down sm-client:                                   [  OK  ]
Shutting down sendmail:                                    [  OK  ]
Starting sendmail: Warning: Option: AuthOptions requires SASL support (-DSASL)
                                                           [  OK  ]
Starting sm-client:                                        [  OK  ]
如果能正常启动这说明编译的完成,如果不能则根据编译时的报错信息进行排错
我在安装的时候遇到了一下错误:
error: Failed dependencies:
        libmysqlclient.so.15 is needed by dovecot-1.0.7-7.el5.i386
        libmysqlclient.so.15(libmysqlclient_15) is needed by dovecot-1.0.7-7.el5.i386
        libpq.so.4 is needed by dovecot-1.0.7-7.el5.i386


安装以下rpm包就OK了!
rpm -ivh perl-DBI-1.52-2.el5.i386.rpm
rpm -ivh mysql-5.0.45-7.el5.i386.rpm
rpm -ivh postgresql-libs-8.1.11-1.el5_1.1.i386.rpm
rpm -ivh dovecot-1.0.7-7.el5.i386.rpm

还有就是能遇到libpq.so.4这个依赖关系
包含在postgresql-libs-8.1.11-1.el5_1.1.i386.rpm中,只要把这个包安装就可以了!
4:配置/etc/mail/sendmail.mc
#cd /etc/mail/
#vim /etc/sendmail.mc
找到下面的两行,通过set nu来显示行数,一般在52行和53行
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

去掉前面的dnl
然后找到下面的那行
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
把Addr改成0.0.0.0
然后保存退出

5:通过m4生成sendmail.cf文件
# m4 sendmail.mc > sendmal.cf
如果提示command not found 那么说明你的m4这个包没有安装,然后安装m4,重新生成!

6:编译/etc/mail/local-host-names
#vi /etc/mail/local-host-names

写入自己的域名,如:  xxx.com
这一步如果不做,将来在客户端可能导致不能发送

7:然后重新启动sendmail服务
#service sendmail restart

8:启动saslauthd
#/etc/rc.d/init.d/saslauthd restart
Stopping saslauthd:                                        [FAILED]
Starting saslauthd:                                        [  OK  ]

9:安装dovecot
#mount /dev/cdrom /media/
#cd /media/Server
#rpm –vhi dovecot-1.0.7-7.el5.i386.rpm

10:测试启动dovecot服务
Service dovecot restart
如果能正常启动,则说明安装成功,如果不能则根据报错信息进行排错。

11:编辑/etc/dovecot
#vim /etc/dovecot
然后找到下面的那一行,去掉前面的#
protocols = imap imaps pop3 pop3s
然后保存退出

12:然后重新启动dovecot 服务

Service dovecot restart
如果服务启动成功就可以进行测试了!(通过客户端的OE或者outlook)

安装procmail
1:解压
解压文件到/usr/local/
#tar –zxf  procmail-3.22.tar.gz –C /usr/local/
#cd /usr/local/procmail-3.22

2:编译
#make

3:安装
#make install

4:增加安全性
make install-suid

5:编辑/etc/procmailrc(也就是procmail的关键)
vi /etc/procmailrc
  MAILDIR=/var/mail  //选择邮件服务器的目录
  VERBOSE=off        //关闭VERBOSE
  PATH=/bin:/sbin:/usr/bin:/usr/sbin/:/usr/local/bin:/usr/local/sbin
  LOGFILE=/var/log/procmail.log   //选择procmail的日志目录
  :0
*^Subject:.*test*
/dev/null
[/code]

         
这个意思是把主题里面含有test的,都过滤掉,发到/dev/null

还可以过滤掉某个邮件地址
:0
*From:.*why@163.com
    {
    :0
/dev/null
}
这样就把所有@163发来的邮件都拒绝了


[email=下面这条是@163.com]下面这条是@163.com[/email]
给发过的邮件,只要主题含有hello的才过滤掉
^From.*tom@163.com
*^Subject:.*hello*
{
:0
/dev/null
}

为了防止规则多了,而不好区分,可以在规则前加上注释语句!用#标识
可以根据要求不同来设置不同的规则,以上的规则主要是根据“主题”和邮件地址来设置的!


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/104869/showart_2085627.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP