CN1302420C - 基于数据库存储的邮件收发方法 - Google Patents
基于数据库存储的邮件收发方法 Download PDFInfo
- Publication number
- CN1302420C CN1302420C CNB031004865A CN03100486A CN1302420C CN 1302420 C CN1302420 C CN 1302420C CN B031004865 A CNB031004865 A CN B031004865A CN 03100486 A CN03100486 A CN 03100486A CN 1302420 C CN1302420 C CN 1302420C
- Authority
- CN
- China
- Prior art keywords
- client
- data
- tables
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于数据库存储的邮件收发方法,其服务器采用数据库的形式对邮件信息进行存储,客户端可以直接操作存储邮件信息的数据库进行邮件的收发,在此过程需要单独进行邮件的解析与合成操作;客户端也可以兼容传统模式通过邮件收发服务间接操作存储邮件信息的数据库进行邮件的收发,此过程要进行模式转换操作。通过采用基于数据库存储的邮件收发方法后,有利于系统的查找和检索,同时使用户在收发邮件时操作更加简便,同时也可以使邮件服务系统结构更加简单、运行稳定、可维护性强。
Description
技术领域
本发明主要涉及互联网领域的电子邮件的存储和收发方法。
背景技术
在目前高速发展的信息化社会中,电子邮件方式已经取代传统邮件方式在人与人之间进行信息传递的统治地位。邮件系统分为客户端与服务端,访问方式有使用邮件收发软件如OutLook Express、FoxMail等进行邮件收发的C-S方式和使用Web页面进行邮件收发的B-S方式。发送邮件原理一般是客户端通过Socket连结服务器的25端口,通过简单邮件传输协议SMTP(Simple Message Transfer Protocol)与服务器沟通并且发送邮件。接收邮件原理一般是客户端通过Socket连结服务器的110端口,通过邮局协议POP3(Post Office Protocol)与服务器沟通,向服务器通报身份后从服务器接收相应的邮件。
现有的使用较多的邮件服务器有美国微软公司生产的ExchangeServer、美国Lotus公司生产的Lotus Notes。该类服务器都是通过C-S方式访问,有稳定、高效、安全、功能强大等特点;在服务器端邮件的存储方式都是采用文件方式,尽管在读些邮件时效率较高,但是为查找和检索都带来不便。然而在实施校园网等企业应用上也需要邮件服务器系统,如果采用Exchange Server服务系统或Lotus Notes服务系统采用文件形式存储邮件,将有许多的不利因素,也无很大的必要。首先是价格因素;再者是访问方式,因为校园网中一般是用Web页面收发邮件,并不需要直接用Socket连结服务器;还有就是系统的兼容性问题,邮件服务器要与管理平台共享数据;最后就是数据的透明度问题,很多邮件服务器的邮件存储格式是不公开的,这会对一些操作带来很多麻烦。以上都决定了需要开发一种独特的邮件服务器来满足以上需求。
发明内容
本发明针对在实施校园网等企业应用上利用现有的电子邮件收发系统存在的不利因素而提出在服务器端使用不同的表来存储不同状态的邮件,服务器端既提供标准的邮件收发服务(接收邮件采用POP3,发送邮件采用SMTP),也提供直接操作数据库的方式来收发邮件。
一种基于数据库存储的邮件收发方法,服务器采用数据库方式对邮件信息进行存储;客户端与服务器之间进行邮件收发时,邮件信息要经过邮件收发服务处理和模式转换,模式转换方法步骤如下:
利用各种服务组件对外提供启动和停止两个方法,启动方法内读取系统配置信息并启动各种对应服务实现类;
各种服务实现类按照配置信息初始化后,进行各自对应的后续处理操作;
利用NT服务程序,调用各种服务组件的启动或停止服务;
上述所述的服务组件包括简单邮件传输协议SMTP服务组件、邮局协议POP3服务组件、MailRoute服务组件、MailCheck服务组件、MailsDispatch服务组件和MailsClcan服务组件。
上述数据库中存储有如下数据存储表:
数据表CC_MAIL_USER,用于保存用户的用户名、密码和邮箱尺寸信息;
数据表CC_MAIL_DROPMAIL,用于存放没有经过分类处理的邮件;
数据表CC_MAIL_MAILINFO,用于存放邮件添加上用户信息后对应各个用户的邮件;
数据表CC_MAIL_ROUTEMAIL,用于存放等待转发服务进行向外转发的邮件;
数据表CC_MAIL_BADMAIL,用于存放垃圾邮件,对收件人与用户名无法匹配或者向外转发失败的邮件将转存入此表,等待管理员来检索或者自动删除;
数据表CC_MAIL_MAILLOG,用于存放服务器的操作日志。
上述所述的服务组件中:简单邮件传输协议SMTP服务组件、邮局协议POP3服务组件所对应的服务实现类在按照配置信息初始化后进行的后续处理操作是:根据客户的连接情况生成多个任务处理类实例,每个任务处理类在各自的线程内完成与客户的交易;
MailRoute服务组件按照配置信息初始化后进行的后续处理操作是:开始定时连接路由服务器转发外部的邮件;
MailCheck服务组件按照配置信息初始化后进行的后续处理操作是:开始定时连接路由服务器接收由外部发来的邮件;
MailsDispatch服务组件按照配置信息初始化后进行的后续处理操作是:开始定时处理邮件的转发和分发业务;
MailsClean服务组件按照配置信息初始化后进行的后续处理操作是:开始定时处理垃圾邮件和日志。
其中发送邮件的简单邮件传输协议SMTP的与客户交易过程是:
客户端首先进行登陆;
系统判断是否允许客户端匿名登陆,如果允许则客户可以直接成功登陆;如果不允许则客户要进行注册、输入有效用户名和密码后才可以成功登陆;
进行交易处理过程,主要是服务器和客户端之间进行分析指令和回复指令的交互式操作。
其中接收邮件的邮局协议POP3的与客户交易过程是:
客户端首先进行登陆;
有两种登陆方式可供选择:基本身份验证方式和NTLM身份认证方式;
进行交易处理过程,主要是服务器和客户端之间进行分析指令和回复指令的交互式操作。
其中MailRoute向外部转发邮件的过程是:
系统生成待转发的邮件列表后连接邮件路由服务器;
系统判断是否允许客户端匿名登陆,如果允许则客户可以直接成功登陆;如果不允许则客户要进行注册、输入有效用户名和密码后才可以成功登陆;
系统发送邮件至路由服务器;
系统判断邮件是否发送成功,如果成功则在数据库存放待转发邮件的数据表中删除待转发的邮件;如果失败则将邮件转移到数据库中存放垃圾邮件的数据表中。
其中MailCheck接收外部发来邮件的过程是:
系统查询并获得接收邮件人的信息后,系统连接邮件接收服务器;
服务器进行登陆;
服务器接收邮件并放入存放对应于各个用户的邮件数据表中。
上述的客户端通过TCP/IP层访问邮件收发服务。
一种基于数据库存储的邮件收发方法,服务器采用数据库方式对邮件信息进行存储;客户端直接操作服务器中存储邮件信息的数据库进行邮件收发,需要进行邮件的合成与解析操作,合成邮件的方法为:
初始化邮件输入的各部分信息;
综合邮件的各部分输入信息,生成邮件总文本并以成员变量的形式保存在内存中;
发送邮件总文本;
解析邮件的方法为:
首先对接收的邮件文本进行初始化操作;
解析邮件文本,并把解析后的结果以成员变量的形式保存在内存中;
取出需要的部分邮件解析信息;
在合成邮件方法中,综合邮件的各部分输入信息,生成邮件总文本并以成员变量的形式保存在内存中时,能够根据需要添加其它部分的邮件信息;在解析邮件方法中对接收的邮件文本进行初始化操作的过程中不保存邮件文本到内存中。
其中数据库中存储有如下数据存储表:
数据表CC_MAIL_USER,用于保存用户的用户名、密码和邮箱尺寸信息;
数据表CC_MAIL_DROPMAIL,用于存放没有经过分类处理的邮件;
数据表CC_MAIL_MAILINFO,用于存放邮件添加上用户信息后对应各个用户的邮件;
数据表CC_MAIL_ROUTEMAIL,用于存放等待转发服务进行向外转发的邮件;
数据表CC_MAIL_BADMAIL,用于存放垃圾邮件,对收件人与用户名无法匹配或者向外转发失败的邮件将转存入此表,等待管理员来检索或者自动删除;
数据表CC_MAIL_MAILLOG,用于存放服务器的操作日志。
上述合成邮件的初始化过程分为两种:
根据发件人、收件人、主题、发件时间、邮件主体,来创建邮件文本BuildMail;
根据发件人、收件人、主题、发件时间、邮件主体和附件所在目录路径,来创建邮件文本BuildMailWithAttach。
上述解析邮件的初始化过程分为五种:
解析所有的邮件信息InitMailContent;
解析邮件中除邮件附件和邮件主体中的图片以外的信息InitMailGeneralContent;
解析邮件中的发件人、收件人、标题、发件时间InitMailHeader;
解析邮件中具体哪一个邮件附件文件InitAttachFile;
解析邮件主体中的具体哪一个图片文件InitRelatedFile。
上述客户端发送邮件的过程为:
使用合成邮件的方法把用户输入的邮件接收人信息、邮件标题、正文、邮件附件编码为一个整体的文本;
使用数据库的访问方式打开数据表CC_MAIL_DROPMAIL,将编码好的整体文本写入该表,形成一条记录;
等待MailDispatch服务组件对形成的记录进行分检操作,需要转发的记录存入数据表CC_MAIL_ROUTEMAIL,需要发送的记录存入数据表CC_MAIL_MAILINFO。
客户端接收邮件的过程为:
根据接收用户的用户名,在数据表CC_MAIL_USER中查找到在服务器中对应该用户名的编号;
打开数据表CC_MAIL_AILINFO,使用数据库查询语句检索出用户信件记录集;
锁定用户信件记录集中的某条记录,读出编过码的文本,使用邮件解析方法解析邮件文本,获得邮件的标题、正文和附件内容信息。
其中所述的客户端通过数据库应用层访问服务器中的数据库进行邮件的收发。
采用上述的基于数据库存储的邮件收发方法后,更有利于系统的查找和检索,同时使用户在收发邮件时操作更加简便。采用本方法后也使得邮件服务系统结构更加简单、运行稳定、可维护性强。
附图说明
图1是本发明所述方法实现的整体框图;
图2是用数据库方式收发邮件的客户端解析邮件的流程图;
图3是用数据库方式收发邮件的客户端合成邮件的流程图;
图4是用数据库方式收发邮件的客户端发送邮件的流程图;
图5是用数据库方式收发邮件的客户端接收邮件的流程图;
图6是模式转换时SMTP服务调用的逻辑层次;
图7是模式转换时完成SMTP的交易过程;
图8是模式转换时POP3服务调用的逻辑层次;
图9是模式转换时完成POP3的交易过程;
图10是模式转换时MailRoute服务调用的逻辑层次;
图11是模式转换时完成MailRoute的交易过程;
图12是模式转换时MailCheck服务调用的逻辑层次;
图13是模式转换时完成MailCheck的交易过程。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步的详细说明。
图1中,是实现本发明所述方法的邮件收发系统框图,其中客户端包括用传统模式收发邮件的客户端2和用数据库方式收发邮件的客户端1,系统的服务器为采用数据库方式对邮件信息进行存储的服务器3。用数据库方式收发邮件的客户端1通过数据库应用层直接访问采用数据库方式对邮件信息进行存储的服务器3进行邮件的收发操作,使用这种方式进行邮件的收发要单独进行邮件的解析与合成操作;用传统模式收发邮件的客户端2可以兼容现有的邮件收发方法,如可以使用Outlook、Foxmail软件进行邮件的收发,此时用传统模式收发邮件的客户端2通过TCP/IP层协议经过邮件收发服务4作用后,间接访问采用数据库方式对邮件信息进行存储的服务器3进行邮件的收发操作,在采用数据库方式对邮件信息进行存储的服务器3和邮件收发服务4之间要进行模式转换操作,从而用传统模式收发邮件的客户端2能够访问采用数据库方式对邮件信息进行存储的服务器3进行邮件的收发工作。
其中服务器端的邮件信息以数据库的方式存储,在数据库中要建立不同的表来存储不同状态时的邮件,所建立的数据表包括:
1、数据表CC_MAIL_USER用来控制用户,保存有用户的用户名、密码和邮箱尺寸等信息。
2、数据表CC_MAIL_DROPMAIL用来存放未经分类处理的邮件,邮件经过客户发送后直接进入此表。此表中的邮件未对接收者作匹配,也没有进行外部邮件的转发,等待分发服务来进行分类操作。
3、数据表CC_MAIL_MAILINFO用来存放已经对应各个用户的邮件,邮件经过分发服务后,进行匹配邮件服务器域名和用户名,将CC_MAIL_DROPMAIL中的邮件添加上用户信息后放入此表。
4、数据表CC_MAIL_ROUTEMAIL用来存放等待向外转发的邮件,邮件经过分发服务后,如果邮件服务器域名和用户名不能匹配,则放入此表等待转发服务来向外转发。
5、数据表CC_MAIL_BADMAIL用来存放垃圾邮件,收信人与用户名无法匹配或转发失败的邮件将转入此表,等待管理员来检索或者自动删除。
6、数据表CC_MAIL_MAILLOG用来存放服务器的操作日志,所有的客户操作、客户地址、服务器自身的操作将全部记录于此表。
上述数据存储表的格式可以完全自行设计,这样有利于与其它软件产品的兼容和后续的扩展开发。
用数据库方式收发邮件的客户端1在直接访问采用数据库方式对邮件信息进行存储的服务器3进行邮件的收发操作时要进行邮件的解析与合成操作,其解析邮件过程的流程图为图2,在步骤10中,系统首先对接收的邮件文本进行初始化,根据具体需要的解析信息的选择,初始化过程可以分为五种:
1)InitMailContent:解析所有邮件信息;
2)InitMailGeneralContent:解析邮件中除邮件附件以及邮件主体中的图片等以外的信息;
3)InitMailHeader:解析邮件中发件人、收件人、标题、发件时间;
4)InitAttachFile:解析邮件中的具体哪一个邮件附件文件;
5)InitRelatedFile:解析邮件主体中的具体哪一个图片或PPT(PowerPoint幻灯)、SWF(不可编辑Flash)等文件;
初始化过程中并不保存邮件文本到内存,以节省大量的内存空间。
在步骤11中,系统解析邮件的文本,并把解析后的结果以成员变量的形式保存到内存中;步骤12中,用户根据具体需要取出部分邮件的解析信息则完成邮件的解析工作。
图3是合成邮件的流程图,步骤20中系统初始化邮件输入的各部分信息,如发件人、标题等,其初始化分为两种情况:
1)BuildMail:根据发件人、收件人、主题、发件时间、邮件主体,来创建邮件文本,若要添加附件,则还需调用插入附件AddAttach方法;
2)BuildMailWithAttach:根据发件人、收件人、主题、发件时间、邮件主体和附件所在目录路径(此目录下的文件都将被作为邮件的附件),来创建邮件文本。
步骤21中系统综合邮件的各部分信息,生成邮件总文本并以成员变量的形式保存在内存中,此时可根据需要再添加其它部分的邮件信息,如一些附加的附件信息等。步骤22中可以对合成的邮件总文本进行发送。
其中用数据库方式收发邮件的客户端1发送邮件的过程如图4所示,步骤23中用户输入接收邮件人信息、邮件的主题、邮件的正文以及附件的路径信息等,步骤24使用上述所述的邮件合成方法把输入的接收邮件人信息、邮件的主题、邮件的正文以及附件的路径信息等编码合成一个整体的文档形式;在步骤25中用具体的数据库访问方式打开数据表CC_MAIL_DROPMAIL,把编码合成的整体文档写入此表,形成一条记录;步骤26中形成的记录等待MailsDispatch服务进行分检操作,需要向外转发的记录存入数据表CC_MAIL_ROUTEMAIL,需要发送的记录存入数据表CC_MAIL_MAILINFO。
用数据库方式收发邮件的客户端1接收邮件的过程如图5所示,步骤27中根据接收用户的用户名,在数据表CC_MAIL_USER中查找到在邮件服务器中对应该用户的编号,然后在步骤28中打开数据表CC_MAIL_MAILINFO,使用数据库查询语句查找出用户信件的记录集,每个用户的信件都有一个记录集,步骤29中根据具体情况对信件记录集中的某条记录进行锁定,读出整个邮件的编码文档;在步骤30中使用上述所述的邮件解析方法对读出的整个邮件的编码文档进行解析,得到邮件的发件人信息、主题、正文以及附件等信息。
用传统模式收发邮件的客户端2间接访问采用数据库方式对邮件信息进行存储的服务器3时,在采用数据库方式对邮件信息进行存储的服务器3和邮件收发服务4之间必须经过相应的模式转换,其转换的方法步骤如下:
发送邮件采用的模式转换方法如图6所示,步骤31中,利用NT服务程序调用SMTP服务组件启动SMTP服务CCSMTPService.exe,在步骤32中SMTP服务组件CCMailServer.SMTPService在启动方法内读取系统配置信息并启动SMTP服务实现类;步骤33中SMTP服务实现类CHQSMTPService按照配置信息初始化后,根据客户的连接情况生成多个任务处理类CHQSMTPServiceTask实例;步骤34中每个任务处理类CHQSMTPServiceTask在各自的线程内完成与客户的交易,其中任务处理类可以根据客户数创建。
任务处理类CHQSMTPServiceTask在各自的线程内与客户的交易过程如图7所示,首先执行步骤40通过任务入口进行登陆,步骤41系统判断用户可否匿名登陆,如果可以则转至步骤44执行HELO指令,直接进入SMTP系统到步骤45中开始进行交易;如果在步骤41中用户不可以匿名登陆,则要在步骤42中输入合法用户名,在步骤43中输入正确密码后才可以成功登陆,再到步骤45中进行交易,交易的主要过程是客户端和服务器端之间进行指令的分析和回复交互式操作,其中操作的指令包括MAIL(邮件收发指令)、RCPT(获得用户的列表,用S表示向服务器发送的命令,用R表示服务器返回的信息)、VRFY(验证是否有用户存在于服务器上)、EXPN(验证是否有邮件列表存在)、HELP、RSET(取消指令,重新开始)、NOOP(空操作指令)、QUIT(退出指令)。
接收邮件采用的转换方法如图8所示,步骤50中,利用NT服务程序调用POP3服务组件启动POP3服务CCPOP3Service.exe,在步骤51中POP3服务组件CCMailServer.POP3Service在启动方法内读取系统配置信息并启动POP3服务实现类;步骤52中POP3服务实现类CHQPOP3Service按照配置信息初始化后,根据客户的连接情况生成多个任务处理类CHQPOP3ServiceTask实例;步骤53中每个任务处理类CHQPOP3ServiceTask在各自的线程内完成与客户的交易,其中任务处理类可以根据客户数创建。
任务处理类CHQPOP3ServiceTask在各自的线程内与客户的交易过程如图9所示,在步骤60中用户首先通过任务入口进行系统的登陆;其中登陆的方式有两种,一种是基本身份验证方式,用户需在步骤61中输入账户,在步骤62中输入自己的口令才能成功登陆,另一种认证方式是NTLM身份认证,需要进行步骤63的鉴权和步骤64的传送用户名和密码给NTLM的过程才能成功登陆到POP3系统,开始在步骤65中进行交易,其交易的主要过程是客户端和服务器端之间的指令分析和回复的交互式操作过程,其中包括指令QUIT(删除标志邮件并退出)、NOOP(控操作指令)、STAT(标识邮件状态)、LIST(邮件列表序号选择)、RETR(收取邮件指令)、UIDL(返回邮件标识符)、DELE(删除邮件指令)、REST(取消指令,重新开始指令)的分析。
邮件向外转发采用的转换方法如图10所示,步骤70中,利用NT服务程序调用MailRout服务组件启动MailRoute服务CCMailManageService.exe,在步骤71中MailRoute服务组件CCMailServer.MailRouteService在启动方法内读取系统配置信息并启动MailRoute服务实现类;步骤72中MailRoute服务实现类CHQMailRouteService按照配置信息初始化后,开始定时连接路由服务器向外转发邮件。
其中向外转发邮件的流程图如图11所示,首先在步骤80中,服务器将准备向外转发的邮件进行列表,然后在步骤81中系统连接至邮件路由服务器上,步骤82系统判断用户是否可以匿名登陆,如果可以则直接登陆成功进入系统,进行下面的操作;如果不可以则用户要进行在步骤83中输入正确的用户名,步骤84中键入正确的口令才可以成功登陆,然后在步骤85中系统把需要向外转发的邮件发送至路由服务器上,步骤86中系统会判断邮件的发送是否成功,如果成功则转至步骤87,系统自动在存放等待向外转发邮件的数据表中删除已经转发完成的邮件,至此邮件的转发过程完成,如果步骤86中系统判断出邮件转发失败。则到步骤88中把向外转发的邮件转移至存放垃圾邮件的数据表中等待管理员来检索或系统自动删除。
接收由外部转发来的邮件采用方法如图12所示,步骤90中,利用NT服务程序调用MailCheck服务组件启动MailCheck服务CCMailCheckService.exe,在步骤91中MailCheck服务组件CCMailServer.MailCheckService在启动方法内读取系统配置信息并启动MailCheck服务实现类;步骤92中MailCheck服务实现类CHQMailCheckService按照配置信息初始化后,开始定时连接路由服务器接收服务器上的由外部发来的邮件。
其中服务器接收由外部转发来的邮件的流程图如图13所示,步骤100中系统查询待接收邮件人的信息后转到步骤101中,将此邮件服务器连接到邮件接收服务器上,到步骤102中进行登陆后,在步骤103从邮件接收服务器接收邮件后放入存放对应各个用户的邮件数据表中等待后续邮件的发送过程,至此服务器接收从外部服务器转发来的邮件的交易过程结束。
Claims (15)
1、一种基于数据库存储的邮件收发方法,其特征在于,服务器采用数据库方式对邮件信息进行存储;客户端与服务器之间进行邮件收发时,邮件信息要经过邮件收发服务处理和模式转换,模式转换方法步骤如下:
利用各种服务组件对外提供启动和停止两个方法,启动方法内读取系统配置信息并启动各种对应服务实现类;
各种服务实现类按照配置信息初始化后,进行各自对应的后续处理操作;
利用NT服务程序,调用各种服务组件的启动或停止服务;
所述的服务组件包括简单邮件传输协议SMTP服务组件、邮局协议POP3服务组件、MailRoute服务组件、MailCheck服务组件、MailsDispatch服务组件和MailsClean服务组件。
2、根据权利要求1所述的基于数据库存储的邮件收发方法,其特征在于,数据库中存储有如下数据存储表:
数据表CC_MAIL_USER,用于保存用户的用户名、密码和邮箱尺寸信息;
数据表CC_MAIL_DROPMAIL,用于存放没有经过分类处理的邮件;
数据表CC_MAIL_MAILINFO,用于存放邮件添加上用户信息后对应各个用户的邮件;
数据表CC_MAIL_ROUTEMAIL,用于存放等待转发服务进行向外转发的邮件;
数据表CC_MAIL_BADMAIL,用于存放垃圾邮件,对收件人与用户名无法匹配或者向外转发失败的邮件将转存入此表,等待管理员来检索或者自动删除;
数据表CC_MAIL_MAILLOG,用于存放服务器的操作日志。
3、根据权利要求1所述的基于数据库存储的邮件收发方法,其特征在于,所述的服务组件中:
简单邮件传输协议SMTP服务组件、邮局协议POP3服务组件所对应的服务实现类在按照配置信息初始化后进行的后续处理操作是:根据客户的连接情况生成多个任务处理类实例,每个任务处理类在各自的线程内完成与客户的交易;
MailRoute服务组件按照配置信息初始化后进行的后续处理操作是:开始定时连接路由服务器转发外部的邮件;
MailCheck服务组件按照配置信息初始化后进行的后续处理操作是:开始定时连接路由服务器接收由外部发来的邮件;
MailsDispatch服务组件按照配置信息初始化后进行的后续处理操作是:开始定时处理邮件的转发和分发业务;
MailsClean服务组件按照配置信息初始化后进行的后续处理操作是:开始定时处理垃圾邮件和日志。
4、根据权利要求3所述的基于数据库存储的邮件收发方法,其特征在于,发送邮件的简单邮件传输协议SMTP的与客户交易过程是:
客户端首先进行登陆;
系统判断是否允许客户端匿名登陆,如果允许则客户可以直接成功登陆;如果不允许则客户要进行注册、输入有效用户名和密码后才可以成功登陆;
进行交易处理过程,主要是服务器和客户端之间进行分析指令和回复指令的交互式操作。
5、根据权利要求3所述的基于数据库存储的邮件收发方法,其特征在于,接收邮件的邮局协议POP3的与客户交易过程是:
客户端首先进行登陆;
有两种登陆方式可供选择:基本身份验证方式和NTLM身份认证方式;
进行交易处理过程,主要是服务器和客户端之间进行分析指令和回复指令的交互式操作。
6、根据权利要求3所述的基于数据库存储的邮件收发方法,其特征在于,MailRoute向外部转发邮件的过程是:
系统生成待转发的邮件列表后连接邮件路由服务器;
系统判断是否允许客户端匿名登陆,如果允许则客户可以直接成功登陆;如果不允许则客户要进行注册、输入有效用户名和密码后才可以成功登陆;
系统发送邮件至路由服务器;
系统判断邮件是否发送成功,如果成功则在数据库存放待转发邮件的数据表中删除待转发的邮件;如果失败则将邮件转移到数据库中存放垃圾邮件的数据表中。
7、根据权利要求3所述的基于数据库存储的邮件收发方法,其特征在于,MailCheck接收外部发来邮件的过程是:
系统查询并获得接收邮件人的信息后,系统连接邮件接收服务器;
服务器进行登陆;
服务器接收邮件并放入存放对应于各个用户的邮件数据表中。
8、根据权利要求1所述的基于数据库存储的邮件收发方法,其特征在于,客户端通过TCP/IP层访问邮件收发服务。
9、一种基于数据库存储的邮件收发方法,其特征在于,服务器采用数据库方式对邮件信息进行存储;客户端直接操作服务器中存储邮件信息的数据库进行邮件收发,需要进行邮件的合成与解析操作,合成邮件的方法为:
初始化邮件输入的各部分信息;
综合邮件的各部分输入信息,生成邮件总文本并以成员变量的形式保存在内存中;
发送邮件总文本;
解析邮件的方法为:
首先对接收的邮件文本进行初始化操作;
解析邮件文本,并把解析后的结果以成员变量的形式保存在内存中;
取出需要的部分邮件解析信息;
在合成邮件方法中,综合邮件的各部分输入信息,生成邮件总文本并以成员变量的形式保存在内存中时,能够根据需要添加其它
部分的邮件信息;在解析邮件方法中对接收的邮件文本进行初始
化操作的过程中不保存邮件文本到内存中。
10、根据权利要求9所述的基于数据库存储的邮件收发方法,其特征在于,数据库中存储有如下数据存储表:
数据表CC_MAIL_USER,用于保存用户的用户名、密码和邮箱尺寸信息;
数据表CC_MAIL_DROPMAIL,用于存放没有经过分类处理的邮件;
数据表CC_MAIL_MAILINFO,用于存放邮件添加上用户信息后对应各个用户的邮件;
数据表CC_MAIL_ROUTEMAIL,用于存放等待转发服务进行向外转发的邮件;
数据表CC_MAIL_BADMAIL,用于存放垃圾邮件,对收件人与用户名无法匹配或者向外转发失败的邮件将转存入此表,等待管理员来检索或者自动删除;
数据表CC_MAIL_MAILLOG,用于存放服务器的操作日志。
11、根据权利要求9所述的基于数据库存储的邮件收发方法,其特征在于,合成邮件的初始化过程分为两种:
根据发件人、收件人、主题、发件时间、邮件主体,来创建邮件文本BuildMail;
根据发件人、收件人、主题、发件时间、邮件主体和附件所在目录路径,来创建邮件文本BuildMailWithAttach。
12、根据权利要求9所述的基于数据库存储的邮件收发方法,其特征在于,解析邮件的初始化过程分为五种:
解析所有的邮件信息InitMailContent;
解析邮件中除邮件附件和邮件主体中的图片以外的信息InitMailGeneralContent;
解析邮件中的发件人、收件人、标题、发件时间InitMailHeader;
解析邮件中具体哪一个邮件附件文件InitAttachFile;
解析邮件主体中的具体哪一个图片文件InitRelatedFile。
13、根据权利要求9所述的基于数据库存储的邮件收发方法,其特征在于,客户端发送邮件的过程为:
使用合成邮件的方法把用户输入的邮件接收人信息、邮件标题、正文、邮件附件编码为一个整体的文本;
使用数据库的访问方式打开数据表CC_MAIL_DROPMAIL,将编码好的整体文本写入该表,形成一条记录;
等待MailDispatch服务组件对形成的记录进行分检操作,需要转发的记录存入数据表CC_MAIL_ROUTEMAIL,需要发送的记录存入数据表CC_MAIL_MAILINFO。
14、根据权利要求9所述的基于数据库存储的邮件收发方法,其特征在于,客户端接收邮件的过程为:
根据接收用户的用户名,在数据表CC_MAIL_USER中查找到在服务器中对应该用户名的编号;
打开数据表CC_MAIL_MAILINFO,使用数据库查询语句检索出用户信件记录集;
锁定用户信件记录集中的某条记录,读出编过码的文本,使用邮件解析方法解析邮件文本,获得邮件的标题、正文和附件内容信息。
15、根据权利要求9所述的基于数据库存储的邮件收发方法,其特征在于,客户端通过数据库应用层访问服务器中的数据库进行邮件的收发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031004865A CN1302420C (zh) | 2003-01-15 | 2003-01-15 | 基于数据库存储的邮件收发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031004865A CN1302420C (zh) | 2003-01-15 | 2003-01-15 | 基于数据库存储的邮件收发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1517924A CN1517924A (zh) | 2004-08-04 |
CN1302420C true CN1302420C (zh) | 2007-02-28 |
Family
ID=34281192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB031004865A Expired - Fee Related CN1302420C (zh) | 2003-01-15 | 2003-01-15 | 基于数据库存储的邮件收发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1302420C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI412937B (zh) * | 2008-01-18 | 2013-10-21 | Hon Hai Prec Ind Co Ltd | 電子郵件發送系統及方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101610224B (zh) * | 2008-06-20 | 2011-11-30 | 中兴通讯股份有限公司 | 邮件异地发送方法 |
CN102402547A (zh) * | 2010-09-15 | 2012-04-04 | 陈勇 | 一种信息处理方法及装置 |
CN102291328B (zh) * | 2011-07-27 | 2015-09-09 | 上海和辰信息技术有限公司 | 支持多协议基于网页的第三方邮件账号收发方法及系统 |
CN103559244B (zh) * | 2013-10-28 | 2016-08-24 | 东软集团股份有限公司 | 基于mbx格式的邮件正文的获取方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1275751A (zh) * | 2000-06-02 | 2000-12-06 | 王逖 | 利用电子邮件查询远程数据库并实时得到查询结果的方法 |
CN1329315A (zh) * | 2000-06-20 | 2002-01-02 | 腾龙计算机软件(上海)有限公司 | 一种电子邮件系统 |
JP2002049562A (ja) * | 2000-08-03 | 2002-02-15 | Nec Access Technica Ltd | 電子メールサービスシステム |
US20020078157A1 (en) * | 2000-08-23 | 2002-06-20 | Shigeki Matsumoto | Data communication system and data communication method |
-
2003
- 2003-01-15 CN CNB031004865A patent/CN1302420C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1275751A (zh) * | 2000-06-02 | 2000-12-06 | 王逖 | 利用电子邮件查询远程数据库并实时得到查询结果的方法 |
CN1329315A (zh) * | 2000-06-20 | 2002-01-02 | 腾龙计算机软件(上海)有限公司 | 一种电子邮件系统 |
JP2002049562A (ja) * | 2000-08-03 | 2002-02-15 | Nec Access Technica Ltd | 電子メールサービスシステム |
US20020078157A1 (en) * | 2000-08-23 | 2002-06-20 | Shigeki Matsumoto | Data communication system and data communication method |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI412937B (zh) * | 2008-01-18 | 2013-10-21 | Hon Hai Prec Ind Co Ltd | 電子郵件發送系統及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1517924A (zh) | 2004-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1150469C (zh) | 分发电子邮件附件的方法和服务器 | |
CN1118990C (zh) | 报文存储与转发系统 | |
KR101109339B1 (ko) | 전자 메시지용 스키마 계층구조 | |
CN1161957C (zh) | 一种用于使传真机成为电子邮件客户机的方法和装置 | |
US7818377B2 (en) | Extended message rule architecture | |
CN101079849A (zh) | 即时通讯系统中发送离线消息的方法和系统 | |
CN1747473A (zh) | 用于扩展消息模式以表示传真消息的系统和方法 | |
CN1913661A (zh) | 消息转换设备与转换方法 | |
US20100097634A1 (en) | Fax message searching and fax content delivery | |
CN1917480A (zh) | 用于经由即时消息的任务委托的方法和系统 | |
US20070143424A1 (en) | Distribution list for a reply message | |
CN1578275A (zh) | 用于多方的电子邮件接收方法和系统 | |
CN1408163A (zh) | 电子消息传递系统方法和装置 | |
CN1933458A (zh) | 对电子邮件消息在递送之后的表示进行控制的系统和方法 | |
CN1522014A (zh) | 关于电子邮件消息的改进的客户服务器通信的系统和方法 | |
CN1956386A (zh) | 基于对等模式建立讨论组及该讨论组即时通信的方法 | |
CN101056275A (zh) | 一种即时通讯系统中对群组消息接收方式的设置方法 | |
CN103903124A (zh) | 一种电子邮件处理方法及装置 | |
CN1787665A (zh) | 一种防止移动终端中个人数据丢失的方法及装置 | |
CN1302420C (zh) | 基于数据库存储的邮件收发方法 | |
CN1735077A (zh) | 群发邮件处理方法 | |
CN101035312A (zh) | 一种集团总机的集团总机短信处理方法和服务器 | |
CN1297122C (zh) | 利用mms实现在移动终端上收发电子邮件的系统和方法 | |
CN1302399C (zh) | 邮件收发系统及方法 | |
CN1150470C (zh) | 电子邮件业务系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070228 Termination date: 20210115 |