CN101610224B - 邮件异地发送方法 - Google Patents
邮件异地发送方法 Download PDFInfo
- Publication number
- CN101610224B CN101610224B CN2008101266929A CN200810126692A CN101610224B CN 101610224 B CN101610224 B CN 101610224B CN 2008101266929 A CN2008101266929 A CN 2008101266929A CN 200810126692 A CN200810126692 A CN 200810126692A CN 101610224 B CN101610224 B CN 101610224B
- Authority
- CN
- China
- Prior art keywords
- office point
- reception
- transmission
- router
- 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.)
- Active
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种邮件异地发送方法,包括如下步骤:步骤A:各局点安装邮件收发程序、配置工作线程的数量、在各局点间建立文件传输协议FTP连接和传输控制协议TCP网络连接后,开启邮件收发程序;步骤B:待发送邮件的发送局点的发送程序选择一个FTP线程,将所述邮件发送到所述邮件的接收局点;步骤C:所述邮件发送程序通过TCP链接,将所述邮件的相关信息发送到所述邮件接收局点;步骤D:所述邮件接收局点的邮件接收程序根据所述邮件信息,选择一个上载线程,将所述邮件上载到接收者邮箱中。本发明实现了任务载荷均匀分配,合理利用系统资源。
Description
技术领域
本发明涉及一种邮件异地发送方法,具体地说,涉及数据通信领域中,一种利用互联网在属于不同局点的用户之间,实现邮件异地发送的方法。
背景技术
要实现邮件在多个局点之间相互收发的功能,需要实现一点对多点的发送功能。目前在10155业务中具有类似的文件传输协议(File Transfer Protocol,简称FTP)邮件功能,该功能通过将接收方的IP地址封装在邮件中,由发送程序扫描待发送的邮件目录,读取邮件文件,解析邮件的接收方地址,并将邮件交由相关的线程进行发送。
首先,假设邮件局点数量为N,在每个局点安装一个邮件发送程序,这个程序需要开启N-1个线程以便实现任意两个局点间两两互连;其次,邮件发送者将接收方的IP地址封装在邮件文件中,并将封装后邮件文件放置在本局点的邮件发送目录中;最后,本局点的邮件发送程序定时扫描邮件发送目录,打开每一个待发送的文件,读取邮件目的IP,并交给与该IP相链接的线程,发送给目的局点。
这种方式存在以下不足:首先,由于每个程序需要开启N-1个线程,当局点数量很大时,程序开启的线程数量就很大,就整个邮件系统来看,会占用大量系统资源;其次,因为一个线程只负责发送一个目的局点的邮件,当没有该目的局点邮件需要发送时,该线程就处于闲置浪费的状态,而当该目的局点需要发送大量邮件时,该线程又处于饱和而不堪重负的状态。由于各线程间没有负载分担能力,常常会处于大量邮件阻塞、同时却有大量资源闲置的尴尬境地。再次,邮件发送前需要打开邮件读取目的IP地址,由于文件读取操作效率很低,必然导致邮件发送效率低下。
发明内容
本发明所要解决的技术问题是提供一种邮件异地发送方法,所述方法解决了现有技术中,当局点数量很大时,程序开启的线程数量就很大,从而会占用大量系统资源的问题;同时,所述方法解决了下述问题:一个线程只负责发送一个目的局点的邮件,当没有该目的局点邮件需要发送时,该线程就处于闲置浪费的状态,而当该目的局点需要发送大量邮件时,该线程又处于饱和而不堪重负的问题;同时,所述方法还解决了,邮件发送前需要打开邮件读取目的IP地址从而导致的邮件发送效率低下的问题。
为了解决上述技术问题,本发明提供了一种邮件异地发送方法,一种邮件异地发送方法,包括如下步骤:
步骤A:各局点安装邮件收发程序、配置工作线程的数量、在各局点间建立文件传输协议FTP连接和传输控制协议TCP网络连接后,开启邮件收发程序;
步骤B:待发送邮件的发送局点的发送程序选择一个FTP线程,将所述邮件发送到所述邮件的接收局点;
步骤C:所述邮件发送程序通过TCP链接,将所述邮件的相关信息发送到所述邮件接收局点;
步骤D:所述邮件接收局点的邮件接收程序根据所述邮件信息,选择一个上载线程,将所述邮件上载到接收者邮箱中。
进一步地,所述步骤A还包括如下步骤:所述邮件发送者将生成的待发送的邮件发送到该发送者所属的发送局点的待发送目录,并在所述发送局点的邮件发送表中插入一条记录,所述记录保存了所述邮件的邮件信息。
进一步地,所述邮件信息至少包括邮件发送者、邮件接收者、邮件接收局点IP地址、邮件文件名信息。
进一步地,步骤B中包括如下步骤:
B1:所述邮件发送程序读取所述待发送目录中邮件信息后,判断所述接收局点是否存在,若存在,转下一步,否则,转步骤H;
B2:所述发送程序读取数据库中的数据,通过调度算法选择一个FTP线程,将所述邮件发送任务分配给该FTP发送线程,任务内容包括所述邮件的相关信息;
H:所述邮件发送程序将所述邮件的重发次数加1,当大于最大重发次数时,删除所述邮件。
进一步地,步骤C中包括如下步骤:
C1:所述FTP线程将发送结果返回给所述发送程序,所述发送程序判断邮件发送是否成功,若成功,转下一步,否则,转步骤H;
C2:所述发送程序通过TCP链接,将所述邮件的相关信息发送到所述邮件接收局点。
进一步地,步骤C后还包括如下步骤:
所述邮件接收局点的接收程序将接收到的所述邮件信息写入到数据库中,并判断写入是否成功,若成功,转下一步,否则,转入步骤H;
所述发送程序删除所述发送局点中的所述邮件。
进一步地,步骤D中包括如下步骤:
D1:所述邮件接收局点的邮件接收程序定时扫描邮件接收表,读取从异地收到的邮件信息,根据邮件信息中邮件接收者的名称,判断所述邮件接收者是否存在,若存在,转下一步,否则,转步骤N;
D2:所述邮件接收程序读取数据库中的数据,通过调度算法选择一个上载线程,将所述邮件上载任务发送给该线程,所述上载任务内容包括所述邮件的相关信息;
N:所述邮件接收程序增加邮件上载次数,当邮件上载次数大于最大上载次数时,在所述邮件接收表中删除该邮件的邮件信息,并将所述失败消息返回给所述邮件发送局点的邮件发送程序。
进一步地,步骤D中还包括如下步骤:
D3:所述邮件接收程序判断所述邮件上载是否成功,若成功,则所述邮件接收程序删除所述邮件接收局点中该邮件的邮件信息,并将上载成功消息返回给所述邮件发送局点的邮件发送程序,否则,转步骤N;
D4:所述发送局点的发送程序收到所述上载成功的消息后,删除所述发送局点中所述邮件的邮件信息。
进一步地,,所述邮件收发程序使用数据库来保存邮件信息。
进一步地,所述数据库是所述局点的业务数据库,所述邮件收发程序的建表脚本在局点的业务数据库上执行。
本发明实现了任务载荷均匀分配,合理利用系统资源。本发明通过数据库获取邮件的信息,不需要对邮件文件进行再次封装及解析的过程,避免了相关文件操作,优化了处理流程,降低了相关系统资源占用,提高了邮件发送效率,同时,也更好地提供了控制邮件处理重试次数的能力。
附图说明
图1是发送局点的发送程序的发送流程图;
图2是接收局点的接收程序的接收流程图。
具体实施方式
本发明采用数据库、FTP及传输控制协议(Transmission Control Protocol,简称TCP)技术,合理分配资源,以实现多局点间高效邮件发送。
本发明需要在每个局点安装邮件收发程序,邮件收发程序需要使用数据库来保存邮件信息,但是并不限制所使用的数据库类型,可以使用局点的业务数据库,只需要将邮件收发程序的建表脚本在局点的业务数据库上执行即可。
本发明在各局点之间配置建立文件传输协议FTP连接,以便将邮件内容文件通过FTP发送到接收方局点,因为采用FTP传送文件的方式发送邮件,所以是可以发送任何类型的邮件,包括语音邮件、视频邮件和文本邮件等。
本发明需要在各局点之间配置控制协议TCP网络,通过在每个局点上配置网络链接参数,在收发程序开时,建立各局点间的两两TCP互连网络连接,以便通过TCP消息发送邮件的相关信息到接收方局点。任何两个局点之间只需要建立一条TCP网络链接,因而本发明所适用的局点数量及邮件收发方向是未限制的。
同时,本发明根据邮件流量、系统资源、局点数量等因素配置工作线程的数量。
下面将结合附图,详细说明本发明的实现方法和收发流程。在以下说明中,涉及到邮件发送者、邮件接收者、邮件发送局点、邮件接收局点等对象,其中邮件发送者和邮件接收者是指收发邮件相关的用户,邮件发送局点是指邮件发送者所在的局点,邮件接收局点是指邮件接收者所在的局点。收发局点的管理员在对各局点配置完成后,开启邮件收发程序。
如图1所示,为邮件发送方局点将邮件通过FTP和TCP连接发送到目的局点。本发明邮件发送的主要步骤如下:
a1、邮件发送者工具生成邮件内容文件,将邮件内容文件发送到该用户所属的发送局点,并将文件拷贝到本局点的待发送目录,然后在本局点的邮件发送表中插入待发送邮件记录,该条记录包括了了待发邮件的相关信息,记录内容至少包括邮件发送者、邮件接收者、邮件接收局点IP地址、邮件文件名等信息。
a2、邮件发送程序定时扫描邮件发送表,读取待发送记录中邮件的信息,并判断目的接收局点是否存在,即判断即所述接收局点是否已与本局点建立了FTP连接和TCP连接,若存在,即已建立连接,则转下一步;如果没有连接,则按操作失败处理,转步骤H。
a3、发送程序中的主线程读取数据库中的数据,通过调度算法选择一个FTP线程,将邮件发送任务分配给该FTP发送线程,任务内容包括待发邮件的相关信息,至少包括邮件发送者、邮件接收者、邮件接收局点IP地址、邮件文件名等信息。
a4、FTP线程发送邮件内容文件,通过FTP链接将邮件文件发送到目的局点。
a5、FTP线程将发送结果返回给发送程序中的主线程,发送程序判断邮件内容发送是否成功。如果判断邮件文件内容发送成功,则发送程序通过TCP链接,将已发送的邮件的相关信息发送到目的接收局点。
a6、邮件接收局点将相关信息写入数据库,判断入库是否成功,如果入库成功,则将该入库成功消息返回到发送局方,发送方删除存储于本地的发送邮件信息,如果入库失败,则转失败处理步骤H。
步骤H:将该邮件的重发次数加1,当大于最大重发次数时,删除该邮件信息。
如图2所示,邮件接收方局点将邮件上载到接收者邮箱中,对于邮件接收处理的主要步骤如下:
b1、邮件接收局点的接收方程序定时扫描邮件接收表,读取从异地收到的邮件信息,将消息内容记录在邮件接收表中,根据邮件信息中邮件接收者的名称,判断邮件接收者是否存在、是否可以接收新邮件,并将判断结果返回给发送方局点。即,邮件接收程序判断邮件接收者可以接收邮件,则执行下一步;如果邮件接收者不存在以及不可以接收新邮件,则按失败处理,转步骤N。
b2、邮件接收程序读取数据库中的数据,通过调度算法选择一个上载线程,将邮件上载任务发送给该线程,任务内容包括已收邮件的相关信息,信息中至少包括邮件接收者、邮件文件名等字段。该上载线程将邮件文件上载到接收者用户的邮箱中,并反馈上载处理的结果,即,邮件接收程序判断邮件上载是否成功,若上载成功,则接收局点删除本地的邮件接收表中该邮件的相关记录,完成邮件接收上载流程,并将上载成功消息反馈给邮件发送局点,发送局点的发送程序收到上载成功的消息后,删除本地发送邮件表中想关邮件的记录,完成邮件发送流程;若上载失败,转步骤N。
步骤N:增加邮件上载次数,当邮件上载次数大于最大上载次数时,在邮件接收表中删除该邮件的记录,并将失败消息反馈给邮件发送局点,完成本次邮件上载流程。
因为FTP发送邮件文件或上载邮件文件都会占用大量系统资源,都是长耗时操作,本发明在邮件发送方和接收方采用多个FTP线程和上载线程,采用多线程处理并均匀分配载荷,有利于系统资源合理使用,可以有效提高系统吞吐量。本发明通过FTP发送和接收邮件,实现在多局点之间邮件的收发功能,每个局点可以通过配置开启多个FTP线程,每个线程可以链接任何一个目的局点,可以向任何一个目的局点发送邮件,发送程序可通过每个发送线程的任务量来分配邮件发送任务,在局点数量很大的情况下,可以控制线程数量不致占用过多系统资源;在邮件流量不大的局点,可使用少量FTP线程,在邮件流量较大的局点,又可以使用更多FTP线程;当邮件分散发送给不同的局点时,这些FTP线程能够同时向不同局点发送,若邮件集中发送给一两个目的局点,则这些FTP线程能够自动调整FTP链接数量,使得邮件较多的目的局点可以获取更多FTP链接,以获得更大的邮件流量。
本发明实现了任务载荷均匀分配,合理利用系统资源。本发明通过数据库获取邮件的信息,不需要对邮件文件进行再次封装及解析的过程,避免了相关文件操作,优化了处理流程,降低了相关系统资源占用,提高了邮件发送效率,同时,也更好地提供了控制邮件处理重试次数的能力。
综上所述,本发明使用系统资源更少、更合理、更高效,提高了邮件吞吐量;对发送或上载失败的邮件进行多次重试,确保邮件成功发送。有利于降低系统成本,提升用户满意度。
应当理解的是,上述针对各具体步骤的举例说明较为具体,并不能因此而认为是对本发明的专利保护范围的限制,本发明的专利保护范围应以所附权利要求为准。
Claims (10)
1.一种邮件异地发送方法,包括如下步骤:
步骤A:各局点安装邮件收发程序、配置工作线程的数量、在各局点间建立文件传输协议FTP连接和传输控制协议TCP网络连接后,开启邮件收发程序;
步骤B:待发送邮件的发送局点的邮件发送程序选择一个FTP线程,将所述邮件发送到所述邮件的接收局点;
步骤C:所述邮件发送程序通过TCP链接,将所述邮件的相关信息发送到所述接收局点;
步骤D:所述接收局点的邮件接收程序根据所述邮件信息,选择一个上载线程,将所述邮件上载到接收者邮箱中。
2.如权利要求1所述的方法,其特征在于,所述步骤A还包括如下步骤:邮件发送者将生成的待发送的邮件发送到该发送者所属的发送局点的待发送目录,并在所述发送局点的邮件发送表中插入一条记录,所述记录保存了所述邮件的邮件信息。
3.如权利要求2所述的方法,其特征在于,所述邮件信息至少包括邮件发送者、邮件接收者、接收局点IP地址、邮件文件名信息。
4.如权利要求3所述的发送方法,其特征在于,步骤B中包括如下步骤:
B1:所述邮件发送程序读取所述待发送目录中邮件信息后,判断所述接收局点是否存在,若存在,转下一步,否则,转步骤H;
B2:所述邮件发送程序读取数据库中的数据,通过调度算法选择一个FTP线程,将所述邮件发送任务分配给该FTP发送线程,任务内容包括所述邮件的相关信息;
H:所述邮件发送程序将所述邮件的重发次数加1,当大于最大重发次数时,删除所述邮件。
5.如权利要求4所述的方法,其特征在于,步骤C中包括如下步骤:
C1:所述FTP线程将发送结果返回给所述邮件发送程序,所述邮件发送程序判断邮件发送是否成功,若成功,转下一步,否则,转步骤H;
C2:所述邮件发送程序通过TCP链接,将所述邮件的相关信息发送到所述接收局点。
6.如权利要求5所述的方法,其特征在于,步骤C后还包括如下步骤:
所述接收局点的邮件接收程序将接收到的所述邮件信息写入到数据库中,并判断写入是否成功,若成功,转下一步,否则,转入步骤H;
所述邮件发送程序删除所述发送局点中的所述邮件。
7.如权利要求6所述的方法,其特征在于,步骤D中包括如下步骤:
D1:所述接收局点的邮件接收程序定时扫描邮件接收表,读取从异地收到的邮件信息,根据邮件信息中邮件接收者的名称,判断所述邮件接收者是否存在,若存在,转下一步,否则,转步骤N;
D2:所述邮件接收程序读取数据库中的数据,通过调度算法选择一个上载线程,将所述邮件上载任务发送给该线程,所述上载任务内容包括所述邮件的相关信息;
N:所述邮件接收程序增加邮件上载次数,当邮件上载次数大于最大上载次数时,在所述邮件接收表中删除该邮件的邮件信息,并将失败消息返回给所述发送局点的邮件发送程序。
8.如权利要求7所述的方法,其特征在于,步骤D中还包括如下步骤:
D3:所述邮件接收程序判断所述邮件上载是否成功,若成功,则所述邮件接收程序删除所述接收局点中该邮件的邮件信息,并将上载成功消息返回给所述发送局点的邮件发送程序,否则,转步骤N;
D4:所述发送局点的邮件发送程序收到所述上载成功的消息后,删除所述发送局点中所述邮件的邮件信息。
9.如权利要求1至9任一所述的方法,其特征在于,所述邮件收发程序使用数据库来保存邮件信息。
10.如权利要求9所述的方法,其特征在于,所述数据库是所述局点的业务数据库,所述邮件收发程序的建表脚本在局点的业务数据库上执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101266929A CN101610224B (zh) | 2008-06-20 | 2008-06-20 | 邮件异地发送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101266929A CN101610224B (zh) | 2008-06-20 | 2008-06-20 | 邮件异地发送方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101610224A CN101610224A (zh) | 2009-12-23 |
CN101610224B true CN101610224B (zh) | 2011-11-30 |
Family
ID=41483814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101266929A Active CN101610224B (zh) | 2008-06-20 | 2008-06-20 | 邮件异地发送方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101610224B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1432188A1 (en) * | 2002-12-16 | 2004-06-23 | Samsung Electronics Co., Ltd. | Email client and email facsimile machine |
CN1517924A (zh) * | 2003-01-15 | 2004-08-04 | 联想(北京)有限公司 | 基于数据库存储的邮件收发方法 |
CN1688147A (zh) * | 2005-05-17 | 2005-10-26 | 北京立通无限科技有限公司 | 基于邮件的断点续传方法 |
-
2008
- 2008-06-20 CN CN2008101266929A patent/CN101610224B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1432188A1 (en) * | 2002-12-16 | 2004-06-23 | Samsung Electronics Co., Ltd. | Email client and email facsimile machine |
CN1517924A (zh) * | 2003-01-15 | 2004-08-04 | 联想(北京)有限公司 | 基于数据库存储的邮件收发方法 |
CN1688147A (zh) * | 2005-05-17 | 2005-10-26 | 北京立通无限科技有限公司 | 基于邮件的断点续传方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101610224A (zh) | 2009-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7209956B2 (en) | Protocol for instant messaging | |
US6334140B1 (en) | Electronic mail server in which electronic mail is processed | |
US6289372B1 (en) | Method for transmitting and processing group messages in the e-mail system | |
CN1161954C (zh) | 用电子邮件系统的同文通信系统及其电子邮件分送方法 | |
US5826034A (en) | System and method for transmission of communication signals through different media | |
US6804336B2 (en) | Method for e-mail fax | |
EP0845184B1 (en) | Improved message queuing distribution services for mail systems | |
CN100568857C (zh) | 电子邮件事务系统和方法 | |
CN101409686B (zh) | 电子邮件附件内容检查系统及方法 | |
CN101951349B (zh) | 支持收发多个电子邮箱邮件的代理邮件网关、系统及方法 | |
WO2002008985A1 (en) | A system for transmission/ reception of e-mail with attached files | |
CN1478359A (zh) | 增值电子信息服务和利用中介服务器的实施 | |
CN103401933B (zh) | 一种资源信息和对应资源文件批量上传的方法和系统 | |
CN101052018A (zh) | 在信息终端上快速群发邮件的方法 | |
CN101483696A (zh) | 一种移动终端以及信息文件管理装置和方法 | |
WO2007036152A1 (fr) | Systeme et procede de filtrage des pourriels et terminal client pour courriel et serveur de courriel | |
CN101212470B (zh) | 一种能够抵御垃圾邮件的分布式邮件系统 | |
CN106302088B (zh) | 收发电子邮件的方法、电子邮件客户端、服务端和系统 | |
CN101610224B (zh) | 邮件异地发送方法 | |
CN101635898B (zh) | 实现彩信邮件的方法及彩信邮件业务网关 | |
CN101640647A (zh) | 一种邮件发送服务装置、系统及邮件发送方法 | |
CN101437206A (zh) | 信息发送方法及其装置 | |
CN1521667A (zh) | 邮件收发系统及方法 | |
US20010028467A1 (en) | Facsimile system, and facsimile terminal and format converter both for use in the system | |
CN101459625B (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 |