基于Linux平台的邮件系统的设计与实现

2011-01-18 03:51
关键词:配置文件投递电子邮件

徐 建

(湖北民族学院 信息工程学院,湖北 恩施 445000)

随着网络技术的发展,电子邮件给很多的用户提供了一种方便、快捷的通信方式,使之渐渐地成为人们生活中不可缺少的一部分.而在大中型企业中,电子邮箱的使用更加频繁,企业都希望拥有自己内部的邮件系统来实现信息的发布和交流,于是都是不得不出巨额的资金购买商用邮件系统.基于Linux平台的邮件系统是用开源代码的自由软件构成的,具有很高的灵活性和性价比.整个系统的实现主要是通过修改各个自由软件的配置文件来完成,整个系统的配置比较简单且易于后期的管理和修改.与商业的邮件系统相比,用开源代码的自由软件搭建的邮件系统在灵活性、可靠性、安全性以及性价比上都有很好的优势.

1 电子邮件传输流程

邮件系统主要由MUA(邮件用户代理)、MTA(邮件传输代理)、MDA(邮件投递代理)三个部分组成.不管是发送过程还是接收过程,电子邮件的传输都要遵循SMTP、POP3、IMAP协议,这些协议确保了电子邮件在各种不同系统之间的传输.其中,SMTP负责电子邮件的发送,而IMAP、POP3则用于接收Internet上的电子邮件[1].

电子邮件传输过程如图1所示.发送端用户(User)通过邮件用户代理(MUA)发送一封邮件,MUA主要是帮助用户读取、编写和回复邮件,然后将这些信息转给本地邮件传输代理(MTA)进行发送.MTA负责把邮件由一个服务器传到另一个服务器或邮件投递代理,MTA收到邮件后,先将其保存在缓冲队列中,然后根据该邮件的目标地址,通过对DNS进行搜索,搜索到对应此目标地址的MTA服务器的IP地址,立即通过网络将邮件传送给对方MTA服务器.对方的MTA服务器接收到邮件之后,将其缓冲存储在本地.邮件投递代理(MDA)主要负责将MTA接收的邮件,根据收件人地址将邮件投放到用户的邮箱里,MDA将缓冲存储在本地的邮件投递到接收端用户的邮箱,接收端用户通过MUA就可以查看自己电子信箱中的邮件.

图2 邮件系统结构图Fig.2 The block diagram of E-mail system

2 系统框架设计

2.1 系统结构

整个系统基于Linux平台,通过STMP协议发送邮件,通过POP3协议接收邮件.该系统由postfix、dovecot、squirrel、mysql构成,如下图2[2]所示.

2.2 邮件代理

邮件用户代理供用户写信、读信、寄信的软件.寄信时,以STMP协议将邮件提交给MTA.收信时,以POP或者IMAP访问服务器上的邮箱[3].由于SquirrelMail支持IMAP和POP协议,且安装、配置简单,该系统选择SquirrelMail作为邮件用户代理.

邮件传递代理是负责接收、递送邮件的服务器软件.决定邮件的递送路径,进行必要的地址改写.应该由本地系统收下的邮件,委托给MDA进行最后的投递操作.对比了几个MTA的优劣,基于Postfix在安全性、可靠性、高效性、灵活性方面的优势,该系统选择Postfix作为基本邮件服务器软件.

邮件投递代理负责投递本地邮件到适当的邮箱.MDA可以过滤邮件内容,或是依照用户设定的准则,将邮件分类到适当的邮箱;甚至可以将邮件转回给MTA,以寄到另一个邮箱[4].由于dovecot 主要是基于安全的设计思想而产生、同时支持IMAP和POP3协议的客户端、同时支持标准的mbox和maildir格式、用户验证灵活且丰富.因此,该系统选择dovecot作为邮件投递软件.

2.3 数据库

数据库只要用来存放邮件用户信息.在处理电子邮件的过程中,经常需要执行各式各样的转换与查表操作.就应付各式各样的查表操作而言,Postfix本身的查询表已经相当完美.然而,在某些情况下,将信息存放在Postfix之外的独立数据库会比较方便些.因此,该系统中用MySQL数据库来存储用户信息.

3 邮件系统的实现

3.1 各种软件的安装

在网上找到debian镜像文件进行Linux操作系统安装.在此操作系统上,就可以用aptitude install命令来在线安装Squirrel、Postfix、Dovecot、MySQL等软件[5].

3.2 各个软件的配置

3.2.1 Postfix配置文件的修改

修改postfix配置文件/etc/postfix/main.cf.

设定完整的主机名:myhostname = mail.rana.com“=”号后面为主机全名;

指明系统邮件的网域:mydomain = rana.com;

指明邮件地址的网域:myorigin = liulu.com;

指明邮件可发送的网域:mydestination = mail.rana.com,localhost.rana.com,localhost.

3.2.2 修改dovecot的配置文件

Dovecot配置文件的修改主要是在dovecot.conf中添加:protocols = imap imaps pop3 pop3s,使dovecot支持IMAP和POP3协议.

不去除明文密码认证:disable_plaintext_auth = no

告诉dovecot邮件是以maildir形式放在/home/vmail/域/用户:

mail_location = maildir:/home/vmail/%d/%n

3.2.3 配置dovecot-sql.conf

为了实现dovecot与MySQL数据库的连接.在dovecot-sql.conf添加下列语句:

drive = mysql

connect = host=127.0.0.1 dbname=mail user =mailuser password=2010

defaukt_pass_scheme = PLAIN

password_query = SELECT email as user, password FROM view_users WHERE user=’%u’

图3 rana用户登录界面Fig.3 Rana user logging interface

图4 rana用户进入邮件系统后操作界面Fig.4 Rana user operation interface

3.2.4 数据库的创建

用SQL语句创建虚拟域表:domains、创建虚拟用户表:users来存放用户的基本信息;创建虚拟视图用户表:view_users方便用户的查询.然后通过创建虚拟域映射文件:/etc/postfix/virtual-mailbox-domains.cf和创建虚拟邮箱映射文件:/etc/postfix/virtual-mailbox -maps.cf来实现数据库的配置.

4 系统测试

邮件系统的实现是通过在Linux系统下安装符合要求的MTA、MUA、MDA、MySQL,以及通过在各个安装好的软件中添加或修改相应的配置文件,来实现各个软件之间的信息传递[6].安装Linux系统和配置好相关自由软件参数后,在客户端通过IE浏览器输入邮件服务器的IP地址,就可以进入邮件系统的登录界面.图3是rana用户登录界面.

在输入正确的用户名和密码后,即可进入到邮件系统.图4是邮箱的操作界面.随后就可以进行相应的写信、收信、查信等操作,实现邮件系统的基本功能.

5 结语

在debian操作系统上,利用postfix、dovecot、squirrel、mysql等开源的自由软件搭建了一个稳定性较高、性价比较好的邮件系统.通过安装和配置这些自由软件实现了IMAP、POP3协议,实现了电子邮件的各种服务功能.本邮件系统在信息安全和垃圾邮件处理方面还未涉及,这将是下一步研究的重点.

[1] 黄俊,殷卫红.基于Postfix电子邮件系统的设计与实现[J].上海电力学院学报,2006,22(2):144-148.

[2] Kyle D Dent. Postfix:The Definitive Guide[M].Charlotte:Baker & Taylor Books,2003:56-60.

[3] Kevin Johnson. Internet Email协议开发指南[M].北京:机械工业出版社,2000:6 -25.

[4] 李善平,刘文峰,王焕龙.Linux与嵌入式系统[M].北京:清华大学出版社,2003:1-25.

[5] 陈禾,张颖,林立,等.基于μC/OS-Ⅱ的嵌入式网络数据采集模块的设计[J].湖北民族学院学报:自然科学版,2006,24(2):143-147.

[6] 徐建.ARM7的水情测报系统的设计与实现[J].湖北民族学院学报:自然科学版,2010,28(2):171-173.

猜你喜欢
配置文件投递电子邮件
智能投递箱
有关旅行计划的电子邮件
传统与文化的“投递”
互不干涉混用Chromium Edge
基于Zookeeper的配置管理中心设计与实现
忘记ESXi主机root密码怎么办
为View桌面准备父虚拟机
大迷宫
民事诉讼电子邮件送达制度的司法适用
小测试:你对电子邮件上瘾了吗?