本发明涉及一种电子邮件内容批量拼接方法及装置,属于电子邮件处理技术领域。
背景技术:
随着互联网技术的高速发展,电子邮件作为广大用户的主要交流手段,越来越被广泛的使用。如同其他各种电子文档一样,电子邮件的内容也必须遵循一定的格式要求,各种邮件处理程序才能从中分析和提取出发件人、收件人、主题和附件等信息。目前邮件内容的基本格式和具体细节分别由rfc822文档和mime协议定义。对于市面上已有的邮件收发软件及工具如浏览器登录、foxmail邮件客户端、outlook邮件客户端,只提供电子邮件格式的解析,从eml格式转换为邮件内容的各项字段,如主题、时间、收件人、发件人、抄送、邮件内容、附件等,而不包含从邮件内容的各项字段转换为标准eml格式规范的功能,而部分邮箱如雅虎邮箱,不能提供标准eml格式电子邮件下载,只提供网页端电子邮件的内容查看和展示,不能通过通用邮件处理软件如foxmail进行统一保存和管理、条件搜索、时间过滤等,使得邮件内容文本查找和附件查阅繁琐,电子邮件的使用效率低。
技术实现要素:
本发明的目的在于提供一种电子邮件内容批量拼接方法及装置,通过对邮件内容的各项字段进行拼接和重新组合成标准规范格式,提高使用效率和电子邮件管理能力。
本发明提供技术方案如下:
一方面,本发明提供了一种电子邮件内容批量拼接方法,包括:
登陆用户电子邮箱;
自动采集所述用户电子邮箱的所有内容字段;
批量拼接所述所有内容字段生成标准规范格式电子邮件;
分类归档所述标准规范格式电子邮件到标准目录。
根据本发明的一实施方式,所述登陆用户电子邮箱的步骤包括:
发送邮箱登陆请求到服务器;
接收所述服务器返回的登陆界面信息,所述登陆界面信息包括:html内容和html隐藏参数;
发送用户账号验证请求到所述服务器,所述用户账号验证请求包括用户账号信息和用户账号的加密参数;
验证所述用户账号的合法性,并返回验证信息;
当验证所述用户账号合法时登陆用户电子邮箱。
根据本发明的另一实施方式,当验证所述用户账号合法时,所述验证信息包括会话信息和授权令牌。
根据本发明的另一实施方式,所述自动采集所述用户电子邮箱的所有内容字段的步骤包括:
按照预定规则自动抓取用户电子邮箱的所有内容字段;
存储所述所有内容字段到数据库;
分析处理所述所有内容字段生成处理字段数据;
建立数据库索引表。
根据本发明的另一实施方式,所述批量拼接所述所有内容字段生成标准规范格式电子邮件的步骤包括:
根据所述数据库索引表批量检索所述数据库获取所述处理字段数据;
批量拼接所述处理字段数据生成标准规范格式电子邮件。
根据本发明的另一实施方式,所述标准规范格式电子邮件包括邮件头和邮件体,所述邮件头由多个头字段和与多个头字段相对应的字段内容组成,所述多个头字段包括发件人地址头字段、收件人地址头字段、发件时间头字段、主题头字段、抄送人地址头字段、密送人地址头字段、smtp处理头字段和pop3处理头字段的一个或多个。
另一方面,本发明还提供了一种电子邮件内容批量拼接装置,包括:
登陆模块,用于登陆用户电子邮箱;
采集模块,用于自动采集所述用户电子邮箱的所有内容字段;
拼接模块,用于批量拼接所述所有内容字段生成标准规范格式电子邮件;
分类归档模块,用于分类归档所述标准规范格式电子邮件到标准目录。
根据本发明的一实施方式,所述登陆模块包括:
登陆请求发送单元,用于发送邮箱登陆请求到服务器;
接收单元,用于接收所述服务器返回的登陆界面信息,所述登陆界面信息包括:html内容和html隐藏参数;
验证请求发送单元,用于发送用户账号验证请求到所述服务器,所述用户账号验证请求包括用户账号信息和用户账号的加密参数;
验证单元,用于验证所述用户账号的合法性,并返回的验证信息;
登陆单元,用于当验证所述用户账号合法时登陆用户电子邮箱。
根据本发明的另一实施方式,所述采集模块包括:
抓取单元,用于按照预定规则自动抓取用户电子邮箱的所有内容字段;
存储单元,用于存储所述所有内容字段到数据库;
处理单元,用于分析处理所述所有内容字段生成处理字段数据;
建立单元,用于建立数据库索引表。
根据本发明的另一实施方式,所述拼接模块包括:
检索单元,用于根据所述数据库索引表批量检索所述数据库获取所述处理字段数据;
拼接单元,用于批量拼接所述处理字段数据生成标准规范格式电子邮件。
本发明的有益效果如下:
本发明的电子邮件内容批量拼接方法及装置,通过对邮件内容的各项字段进行拼接和重新组合,可以将邮件内容保存为通用软件可以识别的标准规范格式,进行eml文件的保存和归档以及通用软件的查找和检索,大大提高使用效率和电子邮件管理能力。
附图说明
图1为本发明实施例一提供的电子邮件内容批量拼接方法的流程示意图;
图2为本发明的电子邮件内容批量拼接方法的步骤100的一个实施例的流程示意图;
图3为本发明的电子邮件内容批量拼接方法的步骤200的一个实施例的流程示意图;
图4为本发明的电子邮件内容批量拼接方法的步骤300的一个实施例的流程示意图;
图5为本发明实施例二提供的电子邮件内容批量拼接装置的结构示意图;
图6为本发明的电子邮件内容批量拼接装置的登陆模块10的一个实施例的结构示意图;
图7为本发明的电子邮件内容批量拼接装置的采集模块20的一个实施例的结构示意;
图8为本发明的电子邮件内容批量拼接装置的采集模块30的一个实施例的结构示意。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
参见图1示出了本发明实施例一提供的一种电子邮件内容批量拼接方法,该方法包括:
步骤100:登陆用户电子邮箱;
步骤200:自动采集用户电子邮箱的所有内容字段;
本步骤中利用爬虫采集技术按照邮箱邮件列表、字段格式的规则,自动地抓取邮箱信息各项内容字段,并存储到数据库中。
步骤300:批量拼接所有内容字段生成标准规范格式电子邮件;
本步骤利用步骤200中采集的内容字段,按照标准规范格式要求进行批量邮件拼接,其中标准规范格式为rfc822标准,在拼接的过程中使用多线程数据并发,并考虑到邮件文字、图片、附件的规格大小进行磁盘写入速度均衡控制。
步骤400:分类归档标准规范格式电子邮件到标准目录。
本步骤将拼接完成的标准规范格式电子邮件以收件箱、发件箱、草稿箱、垃圾邮件等规范目录进行分类并归档到已归档文件夹进行保存。
本发明实施例的电子邮件内容批量拼接方法首先登陆用户电子邮箱,利用爬虫采集技术自动采集邮箱信息各项内容字段,存储到数据库中,之后按照标准规范格式批量拼接猜的字段生成标准格式规范电子邮件,并进行分类保存。通过对邮件内容的各项字段进行拼接和重新组合,可以将邮件内容保存为通用软件可以识别的标准规范格式,进行eml文件的保存和归档以及通用软件的查找和检索,大大提高使用效率和电子邮件管理能力。
作为一个举例说明,参见图2,本发明实施例的步骤100包括:
步骤101:发送邮箱登陆请求到服务器;
步骤102:接收服务器返回的登陆界面信息,登陆界面信息包括:html内容和html隐藏参数;
步骤103:发送用户账号验证请求到服务器,用户账号验证请求包括用户账号信息和用户账号的加密参数;
步骤104:验证用户账号的合法性,并返回验证信息;
步骤105:当验证用户账号合法时登陆用户电子邮箱。
用户打开浏览器进行邮件帐号登录的过程,其实是一个http数据交换的过程。首先用户打开邮箱登录界面,服务器返回html内容和一些隐藏的参数,这个过程一般以get请求为主。然后用户在显示界面输入登录需要验证信息,包含用户帐号、用户账号密码信息等,浏览器此时给服务器发送一个post请求,post请求中包含用户帐号的加密参数以及html的隐藏参数。服务器收到用户的post请求,会从已有账号体系中验证用户的密钥是否正确、账号身份是否合法,返回验证信息。主要post请求形如以下格式:
post/http/1.1
host:mail.163.com
user-agent:mozilla/5.0(windows;u;windowsnt5.1;en-us;rv:1.7.6)
content-type:application/x-www-form-urlencoded
content-length:47
connection:keep-alive
(----此处空一行----)
user=professionaltest&password=abdsfjksd67kfdj3
作为另一个举例说明,本发明实施例当验证用户账号合法时,验证信息包括会话信息和授权令牌。通过验证后,返回成功的授权令牌cookie和会话信息session。
作为另一个举例说明,参见图3,本发明实施例的步骤200包括:
步骤201:按照预定规则自动抓取用户电子邮箱的所有内容字段;
步骤202:存储所有内容字段到数据库;
步骤203:分析处理所有内容字段生成处理字段数据;
步骤204:建立数据库索引表。
利用爬虫采集技术按照邮箱邮件列表、字段格式的规则,自动地抓取邮箱信息各项内容字段,并存储到数据库中。在模拟登录完成后,使用授权过的session和cookie令牌,可以自动采集所有其能够访问到的页面内容。所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索。
作为另一个举例说明,参见图4,本发明实施例的步骤300包括:
步骤301:根据数据库索引表批量检索数据库获取处理字段数据;
步骤302:批量拼接处理字段数据生成标准规范格式电子邮件。
批量检索数据库中的处理字段数据,按照rfc822标准规范格式批量拼接处理,生成eml格式文件。
作为另一个举例说明,本发明实施例的标准规范格式电子邮件包括邮件头和邮件体,邮件头由多个头字段和与多个头字段相对应的字段内容组成,多个头字段包括发件人地址头字段、收件人地址头字段、发件时间头字段、主题头字段、抄送人地址头字段、密送人地址头字段、smtp处理头字段和pop3处理头字段的一个或多个。
举例邮件字段拼接的格式和含义如下:
return-path:<test@sina.com>
delivered-to:test@mx72.mail.sohu.com
received:fromsmtp.sina.com.cn(unknown[202.108.3.177])
bysohumx139.sohu.com(postfix)withsmtpide4f9802c1249
for<test@sohu.com>;thu,10nov200516:39:50+0800(cst)
received:(qmail49221invokedfromnetwork);10nov200508:39:33-0000
received:fromunknown(heloit315?test)(218.246.5.151)
bysmtp.sina.com.cnwithsmtp;10nov200508:39:33-0000
from:test@sina.com
to:test@sohu.com
subject:test
message-id:<20051110083950.e4f9802c1249@sohumx139.sohu.com>
date:thu,10aug201716:39:50+0800(cst)
status:ro
x-uidl:1131611863.21509_77.mx72
test
样例中的第1~15行是邮件的邮件头,第17行是邮件的邮件体,邮件头和邮件体之间以一个空行进行分隔。这封邮件的邮件体内容非常少,只有一行“test”文本。邮件头部分由多个头字段和字段内容组成,各种头字段分别用于表示邮件的发件人、收件人、发件时间和主题等信息。同时还包括一些其他字段如smtp服务器处理头字段,这些头字段是各个smtp服务器在传递邮件的过程加上的。smtp服务器在传递邮件时,会把一些相关信息增加到邮件的邮件头中,这种情况有点类似于现实生活中的邮局在处理邮件时,通常都会在信封上加盖邮戳一样,表示这封邮件在什么时候经过了哪个邮局和由哪个工作人员经手处理。smtp服务器按从下往上的方式添加各个字段,即先添加的字段位于后添加的字段的下面,例如,上述例子中邮件是由sina发送给sohu的,它首先经过sina的smtp服务器,然后经过sohu的smtp服务器,所以,sohu的smtp服务器添加的头字段(1~5行)位于sina的smtp服务器添加的头字段(6~8行)的上面。另外,pop3服务器也会在邮件头中增加一些头字段,例如,样例中的12~15行。
每一个邮件头以"字段名:字段值"的格式出现,即每一行邮件头的内容依次由字段名、冒号、空格、字段值、回车换行符组成。每一个邮件头字段表示一种特定的信息。邮件头中也可以包含自定义的头字段,这种自定义的头字段通常是某个组织或机构内部专用的。
—return-path该字段代表邮件的回复地址,该字段内容由接收邮件的smtp服务器填写,接收邮件的smtp服务器从邮件发送程序发出的mailform命令中获得该字段内容。
—received该字段的基本格式为receivedfromabybforc,其中a为发送方,b为接收方,c为收件人的邮箱地址。
—from该字段用于指定的发件人地址,邮件阅读程序显示的发件人地址就来源于这个字段。from字段中指定的发件人地址可以随意乱写,甚至不写,所以,邮件阅读程序显示的发件人地址不一定是真实的,这通常可以通过查看邮件头中的return-path字段来判断发件人的真实性。注意,smtp协议中mailfrom命令中指定的发件人地址也可以伪造,所以,邮件头中的return-path字段也不是可以完全信赖的,对于比较重要的邮件,最好还是通过电话确认一下。
—to该字段用于指定收件人地址。
—subject该字段用于指定邮件的主题,如果主题内容中包含有ascii码以外的字符,通常要对其内容进行编码。
—date该字段用于指定邮件的发送时间。
—cc该字段用于指定邮件的抄送地址。
—bcc该字段用于指定邮件的密送地址。
另一方面,参见图5示出了本发明实施例二提供的一种电子邮件内容批量拼接装置,该装置包括:
登陆模块10,用于登陆用户电子邮箱;
采集模块20,用于自动采集用户电子邮箱的所有内容字段;
拼接模块30,用于批量拼接所有内容字段生成标准规范格式电子邮件;
分类归档模块40,用于分类归档标准规范格式电子邮件到标准目录。
本发明实施例的电子邮件内容批量拼接装置包括登录模块、采集模块、拼接模块和分类归档模块,结构简单,通过登录模块登陆用户电子邮箱,采集模块利用爬虫采集技术自动采集邮箱信息各项内容字段,存储到数据库中,之后拼接模块按照标准规范格式批量拼接猜的字段生成标准格式规范电子邮件,由分类归档模块分类保存。通过对邮件内容的各项字段进行拼接和重新组合,可以将邮件内容保存为通用软件可以识别的标准规范格式,进行eml文件的保存和归档以及通用软件的查找和检索,大大提高使用效率和电子邮件管理能力。
作为一个举例说明,参见图6,本发明实施例的登陆模块10包括:
登陆请求发送单元11,用于发送邮箱登陆请求到服务器;
接收单元12,用于接收服务器返回的登陆界面信息,登陆界面信息包括:html内容和html隐藏参数;
验证请求发送单元13,用于发送用户账号验证请求到服务器,用户账号验证请求包括用户账号信息和用户账号的加密参数;
验证单元14,用于验证用户账号的合法性,并返回的验证信息;
登陆单元15,用于当验证用户账号合法时登陆用户电子邮箱。
作为另一个举例说明,参见图7,本发明实施例的采集模块20包括:
抓取单元21,用于按照预定规则自动抓取用户电子邮箱的所有内容字段;
存储单元22,用于存储所有内容字段到数据库;
处理单元23,用于分析处理所有内容字段生成处理字段数据;
建立单元24,用于建立数据库索引表。
作为另一个举例说明,参见图8,本发明实施例的拼接模30包括:
检索单元31,用于根据数据库索引表批量检索数据库获取处理字段数据;
拼接单元32,用于批量拼接处理字段数据生成标准规范格式电子邮件。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。