Email系统基于Web在最近几年非常流行,当前,几个着名的免费Email网站基本上已经成为大多数人的选择,建立单纯提供免费Email服务的站点不再像以前那样受到热烈欢迎,提供Web界面的Email服务已经成为了一个商业站点为其注册成员提供的基本服务之一。 一个Email系统可以分为伺服器端和客户端,Web界面的Email系统则是将Email客户放在了Web伺服器端,Email系统所需要实现的是一个Web界面的Email客户。,由于这个Email系统要求用户数量较大,对于Email伺服器也有特定的要求。
基本介绍
- 中文名Email系统
- 领域计算机
- Email软体sendmail
- 作业系统用Unix作为伺服器的作业系统
用户资料库
用户资料库
由于提供Web和Email服务要求稳定性和性能特别高,一般都使用Unix作为伺服器的作业系统,例如hotmail使用FreeBSD 和Solaris,国内163等站点也是BSD系列。, Unix的标準Email系统也不合适用做这种大容量服务。有的Unix系统,例如当前版本的Linux,其用户标识只有16位,用户数量最多只能有64K,即使Unix系统本身支持32位的用户标识,考虑到性能因素,单台伺服器支持的用户数量也不要超过10万。
为了具有支持更多用户的可扩展性,一般採用多台伺服器提供服务,虽然此时仍然可以使用标準Unix用户作为Email用户,但考虑到安全性、性能以及可管理性,一般採用非Unix系统用户来作为Email用户。而保存用户数据通常採用支持网路访问的资料库形式,一般常用的有LDAP、标準资料库、以及Email系统自己实现的用户资料库。其中,LDAP由于是提供目录服务的标準,应该为最佳的选择,其常用的开放原始码实现为OpenLDAP;而标準资料库由于实现方便、可扩展性强,其中在Internet上最常用的为MySQL;,也有使用其他方式的实现。
邮件保存
Email系统
由于用户数量较大,如何保存用户的邮件就是一个非常重要的问题。传统Unix使用一个单一目录来保存所有用户的邮件,在用户数量较多时就极大的降低了档案系统的性能。只有使用多级目录,每个目录下的档案数量有限,才能降低打开档案时的系统消耗,或者不再使用简单的档案来保存邮件,而採用某一种封装形式。完全採取资料库形式来保存邮件,由于用户邮件操作多为档案操作,且大小变化较大,会造成性能和存储空间上较大的浪费。
由于用户数量巨大,并且也要求能被多台伺服器访问,必须採用存储空间较大的伺服器或伺服器集群来保存,通过光纤通道或者网路档案系统NFS来共享存储空间,使得每个用户的邮件存储路径对于每个伺服器都是一致的。光纤通道是一种非常昂贵的解决方法,更为常用的是使用NFS,可以使用专用的NFS伺服器,如NetApp,或者使用带有RAID能力的PC Unix伺服器。
当使用NFS共享存储空间的时候,一个非常重要的问题必须注意。由于NFS缺乏档案锁定机制,使用传统的用户邮件存储格式mailbox时,因为所有的邮件都保存在同一个档案中,进行邮件操作就必须加锁,以保证没有访问冲突,这就使得它不适合NFS存储方式。为了解决这个问题,qmail提出了Maildir存储方式,每个邮件作为单独的一个档案保存在用户个人的邮件目录下,就避免了加锁。,常见的免费邮件伺服器,一般都採用Maildir方式来保存用户的邮件。
如果不打算使用已分享档案系统的方式来保存用户的邮件,而打算让每个伺服器只访问其自己硬碟存储空间上的用户邮件,那幺Email伺服器和客户端都需要进行定製,使它们能通过用户名来找到用户属于的真正伺服器,将访问任务交给这个伺服器完成。这种方法的缺点除了所需要的改动较大之外,系统结构複杂之外,还由于伺服器是按用户进行分割的,不利于分担负载。其优点也是由于它不通过网路访问其他伺服器,可以採用任意的邮件存储格式,包括採用强大的cyrus系统来保存邮件和提供服务。
邮件伺服器软体
邮件伺服器
标準的Email软体,例如sendmail,虽然也提供了一些包括aliases等方法,来支持非Unix系统用户,这些能力对于实现这种Email系统是不够的。为了支持这些Email用户,必须使用自己的Email伺服器软体。一般由于现有的Email软体都相当成熟,而且也都是开放原始码的软体,一般都是改动原有的Email软体,如sendmail、qmail等,使其支持特定的Email用户。完全重写一个Email服务软体,从成熟性、稳定性来看并不可取。
不管从性能上,安全性上考虑,sendmail并不是理想的选择,而且由于qmail本身就支持Maildir,就成为了常用的Email 软体的基础开发平台。需要注意的是,qmail使用GPL许可进行保护,基于qmail进行的任何改动,原则上必须公开原始码,这对开发商业系统有一定障碍。可以通过不改动qmail,而改动相关的系统库函式,或者採用外挂的方式来绕过这个问题。另一个可选的基础Email软体是postfix,其本身就具备与LDAP、MySQL的接口,几乎不需要改动就能作为邮件系统的一部分。
Web客户端
Web界面Email系统的另一个重要的部分就是Web客户端,这一部分的功能将如同个人计算机中的OutLook,负责给用户提供访问自己邮件的能力。由于Web访问本身是无连线的,必须保证用户的安全性。基本上,安全性可以通过登录后建立的会话标识、临时目录,并在程式中进行验证来保证。
Web客户端必须以统一的方式来访问伺服器,可以通过直接档案访问的方式来获得用户的邮件,或者通过POP3、IMAP等标準协定来访问。对于使用网路档案系统来共享用户邮件的系统,通过直接档案访问的方法最为直接和便利,也不需要额外的消耗。而通过POP3、IMAP协定来访问伺服器,其直接的好处就是Web客户端和Email伺服器相分离,提高了系统安全性。
当前,已经有一些相当成熟的开放原始码的Web客户端软体,其中IMP是採用PHP来实现的,通过IMAP协定访问伺服器的Web邮件客户端软体。而WING则是採用Perl来实现的另一个Web客户端软体。这些开放原始码软体都相当不错,,将这些软体与自己的系统相集成,还会需要进行一定改动。,还应该遵循其许可要求,将改动的代码对外公开。
实现负载均衡
由于需要提供给大量的用户进行访问,单台伺服器不能满足这个需要,而必须要使用多伺服器的方式。除了按照功能性进行分割之外,如Web伺服器、Email伺服器以及档案伺服器相分离,还需要对一些资源紧张的服务使用多伺服器进行负载均衡。虽然当前一些商业厂家也提出了一些伺服器集群的方案,但常用的简单而有效的方法还是DNS循环解析,Web伺服器重定位和NAT负载均衡等几种。
DNS循环解析是为同一个名字分配多个IP位址,它用在Yahoo等相当大的站点上,实际效果也相当不错。而Web伺服器重定位则是由Web伺服器随机产生位于不同伺服器上的真实页面URL,使不同的浏览器载入不同伺服器上的页面,使用它只能实现Web客户端的负载均衡。而NAT负载均衡则利用第四层交换机,使同样的请求转向不同的伺服器,除了昂贵的交换机之外,也有一些软体能完成NAT功能,我曾对FreeBSD的natd进行了改动,使其能支持负载均衡,对于因为交换机价格问题而不得不降低性能要求的使用者来讲,也是一种选择。
实例分析
当前在国内最流行的Web界面Email系统为网易公司的系统,它是採用qmail作为基本伺服器软体,再加以改动的系统。它採用 NFS网路档案系统作为用户邮件存储空间,使用Maildir作为邮件存储格式,提供多级目录以支持大量用户。其Web客户端为他们自己实现的,通过直接访问用户邮件的方式为用户提供服务。不考虑其软体的小问题,这种实现方式是非常流行且成熟的方式,大部分免费邮件服务系统都是採用的这种模式。
另一种方式是儘量利用已有的开放原始码软体,一种可行的方案是使用Postfix、OpenLDAP、cyrus和IMP来实现大容量Email 系统,其中,主邮件伺服器使用Postfix查询LDAP伺服器,决定用户的真实信箱地址,然后转发到真实邮件主机上,该主机通过LDAP查询确认,将邮件放入cyrus伺服器中,而IMP通过登录cyrus,使用IMAP访问用户邮件。当用户增多,一台cyrus伺服器不够时,可以将新添加的用户放置到新增加的伺服器上,只需要在LDAP伺服器设定相应的属性就可以了。在这种方式下,由于用户是严格按伺服器分割造成了管理等困难之外,这种结构本身较为複杂。,如果用户数量不是很多,那幺就不需要使用多台cyrus伺服器和LDAP伺服器,複杂程度就大大降低,比较适合中小型站点使用。
建议
企业信箱这个项目虽然比较小,,从这个小项目中,却可以反映出IT 负责人是否具备CIO 应具有的能力。如是否有能力作好需求调研、风险管理、项目规划等等。为此,对这些未来的CIO,提了六个建议。
部署好客户端
信箱项目跟其他的ERP 项目不同。信箱伺服器跟客户端往往是独立的。信箱伺服器可以採用微软的Exchange产品,,客户端不一定要採用微软的产品,可以採用免费的Foxmail等客户端。而像ERP 这种软体,往往没有选择的余地。CIO选择好伺服器之后,也就选定了採用什幺样的客户端。
在企业中该採用什幺样的信箱客户端呢?最好客户端能够统一。也就是公司内部所有员工都採用统一的客户端。不过,往往这方面很难达成统一的认识。这主要是因为信箱已经日益成为互连网套用中一个必备的软体。企业用户在以前都有自己喜欢的客户端软体。所以在项目推广的过程中,就有用户提出要用自己所熟悉的客户端。
此时,作为CIO来说,虽然可以通过强制措施统一客户端,但这显然会增加来自员工的阻力。这个阻力往往是不必要的。而且,员工通过比较,会对现有的客户端软体挑三拣四,反而起到相反的效果。所以,若客户端无法统一的话,CIO 就需要考虑客户端与信箱伺服器的兼容问题。有些客户端虽然可以从伺服器那边接收邮件,,可能会出现一些小问题。如需要进行人为的字型转换或者附属档案不能够正常显示等问题。
所以,CIO 在部署Email系统的时候,要考虑採用什幺类型的客户端软体。
信箱备份策略
任何套用伺服器,出于安全的考虑,都必须要对套用伺服器中的内容进行备份。信箱伺服器也不例外。作为信箱系统管理员,要根据企业的实际情况确定一个合理的备份策略。
通常情况下,企业邮件来往都比较频繁,所以从性能的角度考虑,最好採用差异备份与完全备份结合的策略。如在星期六,进行一次完全备份;在其他时间进行一次差异备份。当信箱容积比较大时,这可以减少信箱伺服器备份的时间与空间;,也可以把因信箱备份给资料库造成的不良影响将到最低。
除了合理的备份策略之外,资料库管理员还需要考虑是否要进行异地备份。笔者是建议在条件允许的情况下,对信箱伺服器进行异地备份。如此的话,在信箱伺服器出现硬体故障的时候,如硬碟损坏时,可以把数据损失降低到最少。,也可以及时的恢复信箱伺服器的运行。
帐户命名规则
当在企业中部署信箱系统的时候,CIO应该确定一个帐户的命名方案。信箱帐户的命名应该统一。因为员工除了在内部传送邮件之外,还需要把邮件发给外部的合作伙伴,如供应商与客户等等。所以一个友好的帐户名字,也能够体现一个公司的管理水平。若让用户自己无规则的取信箱帐户名,很显然看起来会非常的混乱。
所以,建议统一信箱的命名策略。笔者企业每个员工都有一个英文名字。所以採取的命名规则就是“英文名字.姓”这个方式来对用户的信箱帐户进行命名。採取这个方式,要注意一点,就是要跟人事部门配合,当他们输入人事资料的时候,最好能够保证员工的英文名字没有相同的。若英文名字相同,则其中一个人必须更改。否则的话,称呼上容易搞错;信箱地址中也容易出现问题。
有些企业也有通过名字的简写来对信箱帐户命名。这也是可以的。重要的是对信箱帐户的命名策略进行统一。不要有很多的版本。
除了对信箱的命名进行统一外,认为,在部署Email系统的时候,需要制定一套书写的规范。这主要是因为企业员工在书写邮件的时候,往往会有一些不好的习惯。这会给企业的形象带来负面的影响。如有些用户在书写邮件的时候,不喜欢写邮件的标题;又或者,不喜欢书写称呼等等。这些元素虽然不会对邮件造成致命的影响,,给其他人看到这幺不规范的邮件,就可以联繫到员工的素质可能不怎幺高。
为此,在採用信箱系统之前,要对员工进行全面的培训。然后在伺服器上,进行相关的技术限制。如没有标题的邮件或者没有称呼的邮件不能够传送。要能够提示错误信息。
信箱签名制度
信箱不仅是员工之间沟通的一个工具,更加是企业宣传自身的一个手段。在邮件的尾部添加一个签名,是企业藉以宣传自己的一个有效途径。
在部署Emaile系统的时候,会跟人事部门一起,定义好邮件签名的格式。如有公司主营产品的简要介绍、公司的网址、联繫方式等等。通过这种方式,可以打响企业的知名度。,企业跟客户或者供应商联繫往往不是一个人。如对于客户来说,企业销售人员、质量人员等等可能都要跟客户打交道,此时,若几个联繫人的签名格式乱七八糟的话,肯定会给客户留下一个不好的印象。
企业在使用信箱系统之前,要统一签名的格式。一般系统管理员可以给出一个固定的格式。而用户只需要修改自己的名字与联繫方式即可。
用户信箱空间规划
虽然说现在硬碟的价格越来越便宜,仍然需要对用户信箱的空间做一个规划,以防止因为磁碟爆满而造成的伺服器接收邮件故障。以前在信箱维护中,经常会碰到有些员工把信箱当作档案备份的工具。把一些重要的档案,自己发给自己,在信箱伺服器上进行备份。而不是通过企业的档案备份伺服器进行备份。有些员工还会利用企业的信箱跟同事之间传送一些歌曲之类的大档案。因为企业内部信箱比外部信箱的访问速度要快得多,所以,上传一些大容量的附属档案也就比较容易。
在这种情况下,有必要根据用户的帐户对其设定信箱存储空间。当空间达到一定程度时,如帐户总存储空间的80%时,系统就要及时提醒用户,让他们去清理油箱。把一些不必要的邮件删除掉,以释放信箱空间。
还需要对附属档案的大小进行限制,特别是一些允许往外传送邮件的帐户。因为出于传输速度的考虑,网际网路上的信箱系统,往往会对用户能够接收的附属档案大小作了限制。当超过这个限制后,他们的信箱伺服器就不能够接收这个附近。所以,若企业信箱系统的附属档案容量过大的话,企业员工发给其他人他们就会无法查收附属档案。那时,可能反而会影响企业员工跟外部合作伙伴之间的正常联繫。
所以,CIO 要根据实际情况,来确定附属档案的最大容量。当用户附属档案超过这个数量的时候,就会拒绝上传附属档案。以免附属档案在传输过程中丢失。
信息安全
若企业部署了信箱系统,那无疑就增加了一个员工泄露企业机密信息的渠道。此时,作为企业CIO来说,就要考虑,如何来防止这些不好事情的发生。
如CIO可以考虑对用户的信箱进行追蹤。有些信箱伺服器支持邮件的自动转发。此时,就可以利用这个功能,把用户的邮件自动转发到一个特定的信箱中。当企业的机密信息被泄露时,就可以查看这个备份的信箱,看看用户是否有泄露信息的嫌疑。
,企业部署信箱系统之后,企业网路安全也会收到一定的威胁。特别是病毒邮件对企业网路带来的隐患,是非常巨大的。所以,企业在部署Emaile系统之前,最好能够跟网路安全人员一起,设计一套抵制病毒邮件的安全方案。,出于安全的考虑,最好能够把信箱伺服器跟其他的套用伺服器分开放置。如此,即使信箱伺服器受到攻击,也不会影响到其他的套用伺服器。
信箱伺服器这个项目虽小,五脏具全。CIO在部署这个项目时,要考虑的内容不止以上这六个方面。有备无患,对于任何一个信息化项目都适用。,CIO在部署这个项目之前,要充分作好需求调研工作。在作好这项基本工作的,兼顾上面六个建议,相信可以出色的把这个项目落实下去。