Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4438
  • 博文数量: 4
  • 博客积分: 120
  • 博客等级: 入伍新兵
  • 技术积分: 50
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-19 18:25
文章分类
文章存档

2011年(1)

2009年(3)

我的朋友
最近访客

分类: LINUX

2009-11-03 18:08:14

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发来的邮件都拒绝了

 

 

给发过的邮件,只要主题含有hello的才过滤掉

^From.*tom@163.com

*^Subject:.*hello*

{

:0

/dev/null

}

 

为了防止规则多了,而不好区分,可以在规则前加上注释语句!用#标识

可以根据要求不同来设置不同的规则,以上的规则主要是根据“主题”和邮件地址来设置的!

阅读(525) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~