RHEL 5.2下SendMail+dovecot邮件系统配置教程
电子邮件系统对于一个企业的作用相信已经没有人不知道,目前比较主流的邮件系统包括SendMail、exchange、Lotus Notes、Qmail、Postfix等。
Microsoft的Exchange只能运行在Windows平台,而且必须基于活动目录,虽然在功能上exchange的确有一定的优势,比如用户管理、与office等微软其它产品的高集成性等等,但运营成本过高。
Lotus Notes作为IBM产品性能、功能当然是不用说了,不过本人总认为IBM的产品都有一个共同的特点,那就是只有运行在IBM的软、硬件平台时才能将其功能最大化的发挥出来。
SendMail可以运行在几乎所有的类Unix平台,功能也比较强大。当然SendMail也有一些自身的问题,但随着其版本的升级很多方面已经有了很大的改善。
本文中主要介绍在RHEL 5.2下通过SendMail搭建一个邮件系统平台,并结合dovecot实现pop3/IMAP4以及通过OpenWebMail实现客户端通过浏览器访问邮件系统。在讲述过程中采用以下网络拓扑。
一、安装并配置DNS。
DNS的作用相信也不需要过多介绍了,如果企业的邮件服务器如果需要接收来到公网的邮件,需要拥有公网IP及域名,而DNS解析工作都是有ISP提供的。在本文的配置中假设该邮件系统只供企业内部使用,所以需要配置DNS。
4、在/var/named/chroot/etc目录下有一个主配置的例子文件,将其复制一份改名为example.zqin.zone。如下图复制时一定要加-a,如果主配置文件的拥有组不是named时,BIND服务是无法运行的。
6、在/var/named/chroot/var/named中正向、反向各有一个例子,将这二个例子复制一份进行修改,如下图复制时一定要加-a,因为如果区域配置文件的拥有组不是named时,BIND服务是无法运行的。
service named restartchkconfig named on
二、SendMail常规配置
SendMail运行过程是读取/etc/mail/sendmail.cf配置文件,但该文件配置比较复杂,所以一般是配置/etc/mail/sendmail.mc,然后通过以下命令生成sendmail.cf文件(每次修改sendmail.mc后都必须通过使用该命令后再重启sendmail服务,否则配置不会生效)。
在/etc/mail/sendmail.mc文件对格式要求非常严格:
每句左边不能有空格
区分大小写
注释在最左边加dnl
每句必须以dnl结束
增加的语句,不能在最后一行
语句中的引号,如下图
yum -y install sendmail-cf.i* sendmail-doc.i*
4、执行以下步骤后SendMail即可收发邮件。
到此一个最简单的邮件系统已经通过SendMail实现了,下面来看看如何通过telnet命令测试邮件系统是否可以正常工作。
在linux字符模式中收取当前用户收件箱内容使用mail命令。
三、SendMail其它配置
SendMail可以通过本地别名实现以下功能邮件转发、邮件组等功能,配置时用户必须是本地邮件用户。实现时需要编辑/etc/aliases文件,其方法如下图:
user1的邮件转发一份user2。
user3的邮件转发给user4,user3收不到。
发送给hr(系统中没有这个用户)的邮件user5及user6可收到。
SendMail可以通过本地别名实现以下功能邮件转发等功能,配置时用户可以任意,该功能可以将邮件转发到外部区域。实现时需要编辑/etc/mail/virtusertable文件,其方法如下图:
SendMail对本服务器所有发出的邮件进行地址伪装(自动修改发件人地址)。
全局伪装针对所有本区域用户,此功能需修改/etc/mail/sendmail.mc文件,下面的例子中所有发住外部区域的邮件收件人所有区域自动修改为zhangqin.com:
FEATURE(masquerade_envelope)dnl #这句有例句就在第一句的下几行,取消注释即可
FEATURE(masquerade_entire_domail)dnl #这句有例句就在第一句的下几行,取消注释即可
指定用户伪装
指定用户的地址伪装,该功能只能用于收件人是外部域。这个可以和全局地址伪装同时使用。下面的例子中将所有发出的邮件发件人修改为。
修改/etc/mail/sendmail.mc文件。
MASQUERADE_AS(`always_add_domain’)dnl #这句配置文件中有,不需修改
GENERICS_DOMAIN_FILE(`/etc/mail/local-host-names’)dnl #需要输入
建立用户列表。
在lost-hosts-names中加入虚拟区域名称通过/etc/access可以对通过SendMail的邮件流进行控制,其对邮件流通过的动作主要有以下几种:
From:发件人是其它域,收件人是当前域
To:发件人是当前域,收件人是其它域
Connect:发件人、收件人都是其它域
中继限制可用动作:
REJECT:拒收并发退信通知
OK:无条件接收,当与REJECT发生冲突时优生
RELAY:接收,当与REJECT发生冲突时REJECT优先
DISCARD:拒绝
ERROR:550 your message:拒绝,返回特定通知
下图是一个/etc/access文件的例子:
四、Dovecot常规配置
SendMail只能实现SMTP协议的功能,而目前在使用邮件系统时很多用户还是习惯使用类似foxmail的一些邮件客户端软件,这些软件通常都支持pop3、IMAP4等协议。如果希望在RHEL中实现pop3、IMAP4需要使用dovecot。
安装
yum -y install dovecot.i*
service dovecot restart
chkconfig dovecot on
五、配置POPs&IMAPs
pop3及IMAP4协议都是采用明文方式进行数据传输,不过可以通过SSL对其数据传输进行加密
。配置方法如下:
1、在/etc/pki/tls/certs目录下输入以下命令生成密钥(dovecot.pem只是文件名可任意)。
编辑/etc/dovecot.conf文件,加入下图内容:
在dovecot配置完成后可以通过mutt命令对pop3/pops及imap/iamps进行测试。具体方法如下:
1、使用POP3方法验证Dovecot
输入命令可通过pop(如使用pops方式,将下图命令中pop改为pops即可)方式收取邮件,注意是接服务器名称。
mutt -f pop://[email protected]
输入用户密码
进入后可看到该用户的邮件
在上、下移动选择邮件回车可查看。
2、使用IMAP4方法验证Dovecot
输入命令可通过imap(如使用pops方式,将下图命令中pop改为pops即可)方式收取邮件,注意是接服务器名称。
mutt -f imap://[email protected]
输入”o”同意开始通过imap连接服务器
进入后输入用户密码,可看到该用户的邮件
在上、下移动选择邮件回车可查看。
六、OpenWebMail常规配置
对于一个完整的邮件系统,提供用户通过浏览器访问是一个必不可少的功能,而使用OpenWebMail为用户提供该功能也是很不错的选择。不过在RHEL中默认并没有提供OpenWebMail的软件包,只有从网站或从其它rpm包下载网站下载。OpenWebMail需要使用到apache、perl-Text-Iconv、perl-suidper软件包。
yum -y install httpd.i*
rpm -ivh perl-Text-Iconv-1.5-1.fc8.i386
rpm -ivh perl-suidperl-5.8.8-41.fc8.i386
rpm -ivh openwebmail-2.51-5.i586
db_ext .db
dbmopen_ext .db
dbmopen_haslock no
通过就可以访问到openwebmail了(如下图)。
ScriptAlias /mail /usr/local/apache/cgi-bin/openwebmail/openwebmail.pl
到此整个邮件环境已搭建完成,不过这些只能算是第一步,对于一个成熟的邮件系统还有很多工作要做。永远都要记住邮件系统是貌似简单但实际维护量非常大的应用系统。比如防止垃圾邮件、病毒邮件、用户行为控制等等,这些将会在后继的文章中为大家讲解。
- 最新评论
