邮件技术

基于MailerDee邮件组件实现OA内外邮件同步收发可行性分析

发布时间:2015/3/13 10:42:54    来源地址:本站原创

一、前言

电子邮件,无疑是网络应用最为广泛的服务,通过邮件系统,可以用非常低廉的价格,以非常快速的方式,与他人联系,这些电子邮件可以是文字、图像、声音等各种方式。

如果公司已经搭建了外部的电子邮件服务器,给公司内部每个员工开设了相应的电子邮箱,通过此电子邮箱,员工可以使用标准的电子邮件与外界进行联系,此邮件服务,是属于标准的国际互联网电子邮件服务;同时,在公司内部搭建起OA办公自动化系统,公司员工通过登录OA系统,可以使用里面的内部邮件系统,跟公司内部的人员进行信息发送与接收。

公司内部每个员工,均拥有一个外部电子邮件账号,与OA系统中的内部邮件账号(OA登录用户)。由于各个部门的实际工作需求以及业务需求的不同,业务部门因为需要频繁与外界客户进行联系沟通,特别是与国外的客户和供应商联系,绝大部分都是需要用标准的电子邮件服务进行的,因此,业务部门的员工,养成了使用外部电子邮件进行沟通的习惯与文化氛围;而职能部门是属于公司的后勤服务部门,平时工作的联系对象,大多数都是公司内部的各个部门人员,而极少频繁与外界客户进行联系沟通,因此,职能部门人员,均习惯使用OA系统的内部邮件系统进行与其他部门的人员进行沟通。

然而,外部电子邮件系统与内部OA的邮件系统,是属于两套独立运行,且基础结构完全不同的两套系统,无论从工作原理还是数据存储方式,均是不同,所以在外部电子邮件系统中所传递的数据信息,无法在OA内部邮件系统反映,而OA内部邮件系统中的数据,也无法在外部电子邮件系统中进行体现。

于是,习惯了使用标准电子邮件(外部邮件)的业务人员,在繁忙的工作任务中,难以及时查看公司OA的内部邮件;也由于业务部门没有养成及时查看OA内部邮件的习惯,从而造成职能部门所发送的信息难以让业务部门人员及时接收查看,导致公司内部信息沟通在一定程度与范围内的延迟。

二、内外邮件整合的意义与优越性

如果能实现公司外部标准的电子邮件服务与OA系统的内部邮件进行整合,即外部的电子邮件的数据内容能在OA内部邮件中进行查看和显示,而OA的内部邮件数据也能在外部邮件中进行阅读和显示,那么就能有效的解决公司目前上述情况的问题。
并且,内外邮件实现整合,在OA的内部邮件系统中发送内部邮件的同时,也能直接对外发送标准的电子邮件数据,这样一来,还可以节省登录到外部邮件系统才进行发送外部电子邮件这一步骤,无论对业务部门还是职能部门来说,都能提高了工作效率,也更好的实现了信息的规范化与资源整合。

 

三、外部邮件的工作原理

公司外部的电子邮件服务,是符合RFCRequest for Comments)的标准国际互联网电子邮件服务,它的工作过程遵循客户-服务器模式。

每份电子邮件的发送都要涉及到发送方与接收方,发送方式构成客户端,而接收方构成服务器,服务器含有众多用户的电子信箱。发送方通过邮件客户程序,将编辑好的电子邮件,通过ESMTPRFC 821  &  RFC 822)协议,传递至发送服务器进行发送。

然后,邮件发送服务器识别接收者的地址,并向该地址的邮件接收服务器传递邮件数据。邮件接收服务器将邮件数据存放在接收者的电子信箱内,并告知接收者有新邮件到来。接收者通过邮件客户程序连接到邮件接收服务器,通过POP3RFC 2449)协议,进而打开自己的电子信箱来查收邮件。

电子邮件在发送与接收过程中都要遵循SMTPPOP3等协议,这些协议确保了电子邮件在各种不同系统之间的传输。其中,SMTP负责电子邮件的发送,而POP3则用于接收Internet上的电子邮件。

电子邮件在发送的时候,需要对待发送的邮件内容与附件文件,进行编码处理;而邮件接收方,必须要对接收到的邮件数据进行解码处理。

为什么要进行邮件编码与解码?在Internet里,电子邮件的传送是只能传送US-ASCII格式的文字信息,ASCII7位的,而非ASCII格式的档案,在传送过程中若不先经过编码,先编成7位再传送,则在传送过程中会因为这7位元的限制而遭到拆解,拆解之后只会让收信方看到一堆乱七八糟不知所云的东西。经过编码后的资料,在传送过程中才可顺利传送,不会有“被截掉一个bit”的危险,但是收信方必须具有解码程序,将这份经过编码的东西还原,才能解读“天书”,看到寄信人要传送的真实信息。

 

四、内部邮件的工作原理

一般情况下,OA内部邮件系统,是一套基于数据库/数据表模式的单向查询服务。内部邮件发送者,先编写好信息内容,然后提交至OA内部邮件处理系统,然后OA内部邮件处理系统将此信息内容保存,并添加记录至OA的数据库里的 t_cardcontent7 数据表中,并且根据信息发送者所指定的接收方信息,在刚添加的数据表记录中,标记可查阅的对象(也就是内部邮件接收对象)。

然后接收方登陆OA进入内部邮件系统后,OA内部邮件处理系统将会根据当前登录的用户信息,向 t_cardcontent7 数据表查找标记为当前用户的数据记录,把找到的结果,列举出来,然后用户再根据列举的记录信息,进行内部邮件的阅读。

OA内部邮件的整个传递过程中,都只是OA服务程序对 t_cardcontent7 数据表在进行写和读的操作,并且无论是内部邮件的发送者还是内部邮件的接收者,均只是OA系统内部所建立的用户账号,脱离了OA系统,无论是内部邮件的信息内容还是发送、接收对象,都是毫无意义的。

OA内部邮件的数据存储方式,只是依靠数据库中的一个数据表,所有的数据都是以原文明文的方式进行存储,并没有经过任何编码处理。


五、内外邮件整合的设计思路

从上面所述,可以了解到,外部电子邮件与OA内部邮件,有着本质的不同,无论是工作原理还是数据存储方式,都是两种不同的运作机制。需要实行内外邮件的整合,使得在OA内部邮件系统中能及时显示与查看外部邮件的内容,而在外部邮件接收服务器中,又能接收OA相应的内部邮件信息,设计思路如下:

  OA内部邮件系统中同时接收与查看外部邮件:

1、   OA系统中每个账号设置和对应一个或多个POP3邮件接收账号与邮件接收服务器地址

2、   OA用户登录到OA系统,进入内部邮件系统,则根据此OA用户所对应的POP3邮件接收账号与邮件接收服务器信息(第1点所描述的),向指定的邮件接收服务器收取相应的邮件数据到OA内部邮件系统,并将相应的邮件数据保存到本地OA服务器上。那么用户在进入OA系统的内部邮件系统时,就能实现同时查看与显示所对应的外部邮件信息。

 

  在外部电子邮件服务器中接收OA的内部邮件信息:

1、   OA系统中每个账号设置和对应一个或多个SMTP邮件发送账号与邮件发送服务器地址

2、   OA用户在内部邮件系统中进行发送内部邮件时,OA系统增设一个处理子系统,将当前的内部邮件数据格式(数据表存储格式)转换成标准的电子邮件格式,然后根据当前OA用户所对应的SMTP邮件发送账号与邮件发送服务器信息(第1点所描述的),向指定的邮件发送服务器递送转换后的电子邮件数据,最后,由指定的邮件发送服务器把电子邮件发送到目标的邮件接收服务器。

3、   当公司员工登录到他们自己的外部邮件系统的时候,也就能看到由其指定的SMTP邮件发送服务器传递过来的,由OA内部邮件转换成标准格式的外部电子邮件信息。

 

六、技术可行性分析

根据设计思路,内外邮件整合的成功与否,决定于以下环节是否能够实现:

(一)、接收外部邮件

此过程,主要是实现从外部电子邮件服务器把外部邮件数据下载到本地服务器,然后进行解码还原,最后存放至OA内部邮件数据表中。

  1、为OA系统中每个账号设置和对应一个或多个POP3邮件接收账号与邮件接收服务器地址

OA系统中的用户账号数据是在SQL Server 数据库中存储的,而此数据库是运行在我司内部的服务器上,因此,要对每个OA用户账号都设置一个或多个POP3邮件接收账号,以及邮件接收服务器地址信息,只要在我们的OA数据库中的用户表中,直接添加相关的信息字段便可实现。

  2、实现邮件账户的POP3身份验证

POP3 (Post Office Protocol 3) 即邮局协议的第 3 个版本,它规定怎样将个人计算机连接到 Internet 的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准, POP3 允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循 POP3 协议的接收邮件服务器,用来接收电子邮件的。

内外邮件整合,其中很重要的一个环节,就是从用户指定的外部电子邮件服务器上把邮件下载到本地服务器上,从而才能继续进行下一步解码、阅读的操作。而从外部电子邮件服务器上下载邮件之前,需要根据用户所设置的POP3邮件接收账户与密码信息,登录到此外部邮件服务器上,才能进行邮件下载。

这一步骤,可以通过开发相关的应用服务程序,封装POP3指令协议,与外部邮件服务器进行通讯,从而可以实现POP3身份认证和登录。

  3、从外部邮件服务器下载相应的邮件数据到本地服务器

由用户设置的POP3账号与密码,传送至POP3登录处理应用程序,实现POP3的身份验证后,就可以进入相应的邮件下载过程,此过程也必须严格遵循POP3电子邮件协议,把邮件从外部服务器下载到本地的服务器中。

这一步骤,可以与第2点封装在一起处理,即通过开发相关的应用服务程序,首先进行登录外部邮件服务器,登录成功后,此应用服务程序通过POP3协议,从外部电子邮件服务器上,把相应的电子邮件数据下载到本地服务器上,从而实现本步骤的目标。

  4、对外部邮件数据进行解码

从“外部邮件的工作原理”可以知道,从外部邮件服务器接收到本地的服务器的邮件数据,必须要通过解码才能把真正的内容与附件还原出来。而邮件的解码,是遵循RFC 2045-2049国际标准的MIME协议的。MIMEMultipurpose Internet Mail Extensions)全称为“多用途互联网邮件扩展”,它是当前广泛应用的一种电子邮件技术规范,邮件的编码与解码过程,都是遵循此协议的。

实现此步骤,需要开发相应的应用服务程序,封装MIME协议,对下载到本地的外部电子邮件数据进行解码操作,还原出相应的邮件内容与附件文件。

  5、将解码出来的邮件内容与附件,保存到OA的内部邮件系统数据库中

经过以上步骤,外部邮件数据已经可以实现下载并解码还原出原始内容与附件文件,此时,只要应用服务程序将还原出来的邮件正文内容保存到我们的OA数据库中的内部邮件数据表中,即可。

  6OA用户登录到OA内部邮件系统,查看相应的数据内容。

OA内部邮件系统就是基于数据库查询机制进行运作的,因此只要把已经下载并解码还原的内容存放到OA内部邮件数据表中,便可实现查阅功能。

  7、小结

通过上述分析,从外部电子邮件服务器下载邮件到本地服务器,然后进行解码还原,最后存放至OA内部邮件数据表中,整个过程,关键是决定于相应的应用服务程序的三个关键处理机制:POP3身份验证、外部邮件下载、邮件解码还原。而这三个处理机制,就目前而言,相关技术已经较为成熟,如FoxmailOutlook / Outlook ExpressThe Bat 等著名的电子邮件客户端程序,也是依赖此三大机制进行邮件接收的,因此,只要能找到合适并成熟的技术开发力量进行开发,或者找到相应类似的应用服务软件进行修改,实现此部分的目标的可行性还是比较大的。

(二)、发送外部邮件

此过程,主要是实现将在OA内部邮件系统中编写的内部邮件的内容与附件文件进行编码,然后发送到指定的邮件发送服务器中,最后邮件发送服务器会将邮件发送到目标的邮件接收服务器中。

  1、为OA系统中每个账号设置和对应一个或多个SMTP邮件发送账号与邮件发送服务器地址

OA系统中的用户账号数据是在SQL Server 数据库中存储的,而此数据库是运行在我司内部的服务器上,因此,要对每个OA用户账号都设置一个或多个SMTP邮件发送账号,以及邮件发送服务器地址信息,只要在我们的OA数据库中的用户表中,直接添加相关的信息字段便可实现。

  2、对内部邮件数据进行数据编码,转换成标准的国际电子邮件格式

从“外部邮件的工作原理”可以知道,需要把内部邮件的数据进行MIME(多用途互联网邮件扩展)编码,把内部邮件的原文明文数据以及相应的附件文件编码转换成为标准的国际电子邮件格式,才能在互联网上进行传送。

实现此步骤,需要开发相应的应用服务程序,封装MIME协议,把内部邮件的原文明文数据以及相应的附件文件进行编码操作,生成标准格式的国际电子邮件。

  3、实现邮件账户的ESMTP身份验证

SMTPSimple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。通过SMTP协议所指定的服务器,我们就可以把Email寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转你发出的电子邮件。

为了更有效地抑制垃圾邮件的泛滥,目前邮件服务器都把SMTP服务升级到ESMTP Extended SMTP: 扩展的SMTP服务)服务,它与SMTP服务的区别是,使用SMTP发信不需要验证用户帐号,而用ESMTP发信时,服务器会要求用户提供用户名和密码以便验证身份。验证之后的邮件发送过程与SMTP方式没有两样。

这一步骤,可以通过开发相关的应用服务程序,封装ESMTP指令协议,与外部邮件服务器进行通讯,从而可以实现ESMTP身份认证和登录。

  4、将已经编码的标准邮件数据发送至用户指定的邮件发送服务器

由用户设置的SMTP账号与密码,传送至SMTP登录处理应用程序,实现ESMTP的身份验证后,就可以进入相应的邮件发送过程,此过程也必须严格遵循SMTP电子邮件发送协议,把电子邮件数据从本地OA系统中的发送到外部的邮件发送服务器中。

通过开发相关的应用服务程序,首先进行登录外部邮件服务器,登录成功后,此应用服务程序通过ESMTP协议,从本地OA系统中,对内部邮件进行编码处理,然后再把编码后的标准电子邮件数据发送到指定的外部邮件发送服务器,从而实现本步骤的目标。

  5、邮件发送服务器将接收到的待发送邮件数据,以SMTP协议,通过INTERNET传递到目的邮件接收服务器。

外部的邮件发送服务器是属于外部邮件服务器,只要能实现把内部邮件进行编码、传送到指定的外部邮件发送服务器中,外部邮件发送服务器将会自动通过SMTP协议,把此邮件传送到相应的目标邮件接收服务器中。只要用户指定的邮件发送服务器是运作稳定的,并且用户提供的邮件发送账号与密码是正确的,邮件发送服务器一般都可以顺利的完成邮件递送的任务。

  6、小结

通过上述分析,实现将在OA内部邮件系统中编写的内部邮件的内容与附件文件进行编码,然后发送到指定的邮件发送服务器中,最后邮件发送服务器会将邮件发送到目标的邮件接收服务器中,整个过程,关键是决定于相应的应用服务程序的三个关键处理机制:

l           对内部邮件数据进行数据编码,转换成标准的国际电子邮件格式

l           实现邮件账户的ESMTP身份验证

l           将已经编码的标准邮件数据发送至用户指定的邮件发送服务器

这三个处理机制,就目前而言,相关技术已经很成熟,不单如FoxmailOutlook / Outlook ExpressThe Bat 等著名的电子邮件客户端程序,是通过上述三大机制进行邮件发送的,并且,国内很多知名的门户网站,也已经实现了通过网页进行邮件发送的功能,如阿里巴巴可以把最新的交易信息发送到商户指定的电子邮箱中;银联在线支付中心网站可以把在线购物的消费情况发送到消费者的电子邮箱中等等,因此,只要能找到合适并成熟的技术开发力量进行开发,或者找到相应类似的应用服务软件进行修改,实现此部分的目标的可行性是很大的。

(三)、OA系统内部邮件模块的可修改

要实现内外邮件整合,增加外部邮件处理模块,必须要对现有OA系统内部邮件系统进行升级修改,而OA系统是属于南北公司提供,并且其程序源代码大部分已经被进行加密,因此,能否顺利成功的实现内外邮件整合这个目标,其中一个很重要的因素就是需要南北公司提供OA程序的相关源代码程序以及OA系统的内部邮件系统的相关技术支持与接口说明。

  实现此环节,只要与南北公司沟通,以及支付相关的版权费用,获得南北公司OA系统的技术支持与相关源程序的可行性是很大的。

七、内外邮件整合的成本和风险分析

公司内外邮件整合实现以后,将会带来如下成本:

  1、技术研发成本

实现公司的内外邮件整合,目前,市场上已经存在的案例不多,因此关键的技术步骤与环节,需要寻求公司外部的技术力量或者软件服务商支持所产生的费用成本;而另一方面,对于OA内部邮件系统的改造,需要向南北公司购买源程序开放的版权费用。

  2、本地服务器的硬件成本

实现公司的内外邮件整合,首先,指定的外部电子邮件数据将会下载到本地服务器,因此,本地服务器需要配备大容量的磁盘存储空间;其次,应用服务程序将会消耗服务器一定的运行资源,如CPU速度的占用,RAM内存的占用等。

  3、应用服务软件的维护成本

实现内外邮件整合的应用服务程序由于需要外部技术力量或软件服务商支持,因此应用服务软件程序可能需要定时的维护或升级,从而会带来相应的维护成本。

对于OA用户所关联的外部邮件收发信息(包括邮件接收账号、邮件接收服务器信息;邮件发送账号,邮件发送服务器信息)需要定期进行维护管理,对那些失效或过期的外部邮件收发信息,进行修复或清理,从而也会带来相应的管理成本与人力成本。

  4、增加OA系统数据库的运作成本

由于应用服务程序会将外部电子邮件下载到本地服务器,还原出邮件正文内容和附件文件,并保存到OA内部邮件数据库中,因此会对OA系统数据库增加运作成本。

由于OA用户都设置相关的外部邮件接收地址与发送地址,那么如果其中OA用户A,在内部邮件中发送一封内部邮件给另一OA用户B,那么,这封内部邮件也同时会发送到用户B所关联的外部电子邮箱中,当用户B登录到OA内部邮件系统中后,那么,用户B将会接收到两封同样内容的邮件,一封是用户A发送给用户B的普通内部邮件,另一封则是用户A发送到用户B的外部电子邮箱里,然后用户B再从其外部邮箱接收到内部邮件中去的邮件。这样一来,也会对OA系统数据库造成额外的运作成本。

  5、增加外部电子邮件的开销成本

由于内部邮件的发送同时也会把邮件发送至邮件接收方的外部电子邮箱,因此,内外邮件整合,也会消耗用户的外部电子邮箱的存储空间,特别是那些外部邮箱空间小,而又长期不登录进行定期清理维护的用户,会存在由于邮件的数据量庞大而造成外部电子邮箱拒绝服务的风险。


公司内外邮件整合实现以后,可能会存在以下风险:

  1、邮件接收与发送失败风险

因为接收外部电子邮件数据到本地OA内部邮件中,是凭借OA用户所关联的POP3外部邮件接收账号、密码以及POP3服务器地址等信息;而将内部邮件发送到接收方对应的外部邮箱中,是凭借OA用户所关联的SMTP外部邮件发送账号、密码以及SMTP服务器地址等信息。如果用户对其外部邮件密码甚至账号进行变更,而又没同时在OA用户所关联的信息表中进行修改,那么将会造成邮件接收或发送失败,而这种单方面变更的存在性是长期的,因而增加了邮件接收与发送失败的风险。

由于内外邮件整合的关键步骤与环节,是由相应的应用服务程序来完成,因此应用服务程序的稳定性与可靠性,也会相应增加邮件接收与发送失败风险。

  2、增加了邮件被接收方判定为垃圾邮件的风险

由于内外邮件整合的关键步骤与环节,是由相应的应用服务程序来完成,因此应用服务程序的稳定性与可靠性,也会相应增加了邮件被接收方判定为垃圾邮件的风险。

八、总结

项目关键步骤与环节

可行性程度

成本与风险

接收外部邮件

OA用户设置关联的外部邮件接收账号,邮件接收服务器地址

可行

几乎没有

邮件账户的POP3身份验证

可行

技术研发成本

本地服务器的硬件成本

应用服务软件的维护成本

OA系统的运作成本

邮件接收失败风险

从外部邮件服务器下载相应的邮件数据到本地服务器

可行

对外部邮件数据进行解码

可行

将解码出来的邮件内容与附件,保存到OA的内部邮件系统数据库中

可行

OA用户登录到OA内部邮件系统,查看相应的数据内容

可行

几乎没有

发送外部邮件

OA用户设置关联的外部邮件发送账号,邮件发送服务器地址

可行

几乎没有

对内部邮件数据进行数据编码,转换成标准的国际电子邮件格式

可行

技术研发成本

应用服务软件的维护成本

OA系统的运作成本

外部电子邮件的成本

邮件发送失败风险

实现邮件账户的ESMTP身份验证

可行

将已经编码的标准邮件数据发送至用户指定的邮件发送服务器

可行

邮件发送服务器将邮件数据传递到目的邮件接收服务器

可行

邮件发送传输失败

被判定为垃圾邮件的风险

OA系统内部邮件模块可修改

获得OA系统的源程序

可行

源程序相关的版权费用

 

 

综上所述,公司内部与外部邮件的整合,项目所实现的目标是明确的,其可行性也是比较大的。


(本站原创文章,转载请注明出处)

业务咨询热线:

020-82038459

产品售后服务专线:

020-82038459

在线咨询: