CN117411847B - 一种邮件外链图片转存方法、系统和介质 - Google Patents
一种邮件外链图片转存方法、系统和介质 Download PDFInfo
- Publication number
- CN117411847B CN117411847B CN202311718259.5A CN202311718259A CN117411847B CN 117411847 B CN117411847 B CN 117411847B CN 202311718259 A CN202311718259 A CN 202311718259A CN 117411847 B CN117411847 B CN 117411847B
- Authority
- CN
- China
- Prior art keywords
- picture
- information
- link
- loading
- obtaining
- 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
- 238000000034 method Methods 0.000 title claims abstract description 87
- 238000012546 transfer Methods 0.000 title claims abstract description 53
- 238000012544 monitoring process Methods 0.000 claims abstract description 42
- 238000012545 processing Methods 0.000 claims abstract description 33
- 235000014510 cooky Nutrition 0.000 claims description 46
- 230000004044 response Effects 0.000 claims description 30
- 238000011161 development Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 23
- 238000013507 mapping Methods 0.000 claims description 12
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 230000001360 synchronised effect Effects 0.000 claims description 5
- 230000002265 prevention Effects 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000013515 script Methods 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/10—Multimedia information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/42—Mailbox-related aspects, e.g. synchronisation of mailboxes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供了一种邮件外链图片转存方法、系统和介质。该方法包括:获取邮箱登录状态信息后监控浏览器的网络请求信息,同时获取剪切板信息并根据img图片标签信息添加事件监听器,通过事件监听器获得外链图片的加载状态信息并进一步获得网络请求信息,判断图片的加载来源模式,根据不同的加载来源模式对应获得不同的图片处理方式并将图片下载至本地缓存路径,将图片来源更新为本地缓存路径并转换为内联图片后发送邮件。通过判断图片的来源模式,采用不同方式将图片下载至本地缓存路径,并更新图片来源的方式,实现了邮件外链图片转存的技术。
Description
技术领域
本申请涉及图片转存领域,具体而言,涉及邮件外链图片转存方法、系统和介质。
背景技术
电子邮件作为一种现代通信工具,具有传递快速、成本低、全球覆盖、便于存档等优点,因此邮件通讯一直以来都被人们所青睐,也是现代社会最常见的通讯方式。由于不同用户的不同需要,电子邮件不止涉及到文字信息,同样还包括了图片、文件等信息,在撰写邮件时人们经常将含有图片的html文本粘贴到邮件正文中,由于html文本中的图片链接一般都会采用外链形式,邮件正文中包含外链图片时很容易出现无法访问的现象,或者是粘贴时能正常显示,但是邮件发送出去后,收信方无法显示外链图片。
针对上述问题,目前亟待有效的技术解决方案。
发明内容
本申请的目的在于提供邮件外链图片转存方法、系统和介质,通过获取邮箱登录状态信息后监控浏览器的网络请求信息,同时获取剪切板信息并根据img图片标签信息添加事件监听器,通过事件监听器获得外链图片的加载状态信息并进一步获得网络请求信息,判断图片的加载来源模式,根据不同的加载来源模式对应获得不同的图片处理方式并将图片下载至本地缓存路径,将图片来源更新为本地缓存路径并转换为内联图片后发送邮件。通过判断图片的来源模式,采用不同方式将图片下载至本地缓存路径,并更新图片来源的方式,实现了邮件外链图片转存的技术。
本申请还提供了邮件外链图片转存方法,包括以下步骤:
获取邮箱登录状态信息,根据邮箱登录状态信息初始化预设外链图片转存模型,并监控浏览器的网络请求信息;
获取剪切板信息,根据剪切板信息对应获得img图片标签信息,并添加事件监听器;
通过所述事件监听器获得外链图片的加载状态信息,根据加载状态信息获得所述网络请求信息;
判断所述外链图片的加载来源模式,根据加载来源模式对应获得外链图片处理方式并获得外链图片的本地缓存路径;
将所述外链图片来源更新为所述本地缓存路径,并转换为内联图片;
根据用户需求发送邮件。
可选地,在本申请所述的邮件外链图片转存方法中,所述获取邮箱登录状态信息,根据邮箱登录状态信息初始化预设外链图片转存模型,并监控浏览器的网络请求信息,具体包括:
获取邮箱登录状态信息,包括已登录和未登录;
判断所述邮箱登录状态,若为已登录,则初始化预设外链图片转存模型并在前端开发框架主进程中调用同步执行,开启网络监控;
所述网络监控监控浏览器的网络请求信息,若所述网络请求信息为网络收到请求响应,则获得请求ID编号;
根据所述请求ID编号对应获得请求响应报文。
可选地,在本申请所述的邮件外链图片转存方法中,所述获取剪切板信息,根据剪切板信息对应获得img图片标签信息,并添加事件监听器,具体包括:
获取剪切板信息,并输入邮件编辑器中获得超文本标记语言信息;
通过正则表达式判断所述超文本标记语言信息中是否包含img图片标签信息;
若包含,则添加事件监听器,包括onload和onerror。
可选地,在本申请所述的邮件外链图片转存方法中,所述通过所述事件监听器获得外链图片的加载状态信息,根据加载状态信息获得所述网络请求信息,具体包括:
通过所述事件监听器获得外链图片的加载状态信息,包括加载成功和加载失败;
若所述加载状态信息为加载成功,则onload监听器启动所述网络监控;
所述网络监控获得浏览器的网络请求信息。
可选地,在本申请所述的邮件外链图片转存方法中,所述所述判断所述外链图片的加载来源模式,根据加载来源模式对应获得外链图片处理方式并获得外链图片的本地缓存路径,具体包括:
通过预设邮件外链图片转存模型检测判断外链图片的加载来源模式;
所述加载来源模式包括外链网址模式、防外链网址模式以及外链Cookie模式;
根据所述加载来源模式对应获得外链图片处理方式;
根据所述外链图片处理方式获得所述外链图片的本地缓存路径。
可选地,在本申请所述的邮件外链图片转存方法中,还包括:
若所述加载来源模式为外链网址模式,则获取外链图片的网络路径信息和二进制数据流信息;
将所述二进制数据流保存至本地缓存目录获得本地缓存路径;
在全局变量图谱中建立所述网络路径与所述本地缓存路径的映射关系;
将所述img图片标签信息发送至所述前端开发框架主进程;
所述前端开发框架主进程根据所述映射关系查找获得所述地缓存路径。
可选地,在本申请所述的邮件外链图片转存方法中,还包括:
若所述加载来源模式为防外链网址模式,则获取剪切板信息;
通过所述前端开发框架和封装节点组件获得所述剪切板信息中的超文本标记语言、原始二进制数据以及来源网址对应的原始网址信息;
构造http请求头,并将来源网址作为Referer附加到http请求头生成访问请求;
根据所述访问请求访问原始图片信息,并下载原始图片至本地缓存路径。
可选地,在本申请所述的邮件外链图片转存方法中,还包括:
若所述防外链网址模式下载图片失败,则获取浏览器的cookie存储路径信息和cookie数据库信息;
通过卷影复制模型复制所述cookie数据库信息为图片数据库;
通过SQLite获得所述图片数据库中的cookie键值对;
根据所述cookie键值对和所述Referer访问原始图片并下载至所述本地缓存路径。
第二方面,本申请提供了邮件外链图片转存系统,该系统包括:存储器及处理器,所述存储器中包括邮件外链图片转存方法的程序,所述邮件外链图片转存方法的程序被所述处理器执行时实现以下步骤:
获取邮箱登录状态信息,根据邮箱登录状态信息初始化预设外链图片转存模型,并监控浏览器的网络请求信息;
获取剪切板信息,根据剪切板信息对应获得img图片标签信息,并添加事件监听器;
通过所述事件监听器获得外链图片的加载状态信息,根据加载状态信息获得所述网络请求信息;
判断所述外链图片的加载来源模式,根据加载来源模式对应获得外链图片处理方式并获得外链图片的本地缓存路径;
将所述外链图片来源更新为所述本地缓存路径,并转换为内联图片;
根据用户需求发送邮件。
第三方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质中包括邮件外链图片转存方法程序,所述邮件外链图片转存方法程序被处理器执行时,实现如上述任一项所述的邮件外链图片转存方法的步骤。
由上可知,本申请提供的邮件外链图片转存方法、系统和介质,通过获取邮箱登录状态信息后监控浏览器的网络请求信息,同时获取剪切板信息并根据img图片标签信息添加事件监听器,通过事件监听器获得外链图片的加载状态信息并进一步获得网络请求信息,判断图片的加载来源模式,根据不同的加载来源模式对应获得不同的图片处理方式并将图片下载至本地缓存路径,将图片来源更新为本地缓存路径并转换为内联图片后发送邮件。通过判断图片的来源模式,采用不同方式将图片下载至本地缓存路径,并更新图片来源的方式,实现了邮件外链图片转存的技术。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的邮件外链图片转存方法的一种流程图;
图2为本申请实施例提供的邮件外链图片转存方法的获得请求响应报文的一种流程图;
图3为本申请实施例提供的邮件外链图片转存方法的获得网络请求信息的一种流程图;
图4为本申请实施例提供的邮件外链图片转存方法的获得图片本地缓存路径的一种流程图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到,相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,图1是本申请一些实施例中的邮件外链图片转存方法的一种流程图。该邮件外链图片转存方法旨在提供一种能够实现邮件外链图片转存方案,该邮件外链图片转存方法用于智能终端设备中,例如电脑端/手机端等。该邮件外链图片转存方法,包括以下步骤:
S11、获取邮箱登录状态信息,根据邮箱登录状态信息初始化预设外链图片转存模型,并监控浏览器的网络请求信息;
S12、获取剪切板信息,根据剪切板信息对应获得img图片标签信息,并添加事件监听器;
S13、通过所述事件监听器获得外链图片的加载状态信息,根据加载状态信息获得所述网络请求信息;
S14、判断所述外链图片的加载来源模式,根据加载来源模式对应获得外链图片处理方式并获得外链图片的本地缓存路径;
S15、将所述外链图片来源更新为所述本地缓存路径,并转换为内联图片;
S16、根据用户需求发送邮件。
其中,获取邮箱登录状态是为了确认是否启动并初始化预设外链图片转存模型,外链图片转存模型可实现网络请求的监控、时间监听器、外链图片处理方式、图片来源路径更新等。初始化后,对浏览器的网络请求信息进行监控,在图片转存过程中会用到剪切板,获取剪切板信息并判断剪切板中是否存在img图片标签信息,如果有img图片标签信息,则添加事件监听器,通过事件监听器可以获得外链图片的加载状态信息,判断外链图片是否加载成功,如果加载成功则获得网络请求信息,通过网络请求信息判断外链图片的加载来源模式,每种来源模式都有各自不同的特征,然后根据来源模式匹配相对应的图片处理方式,通过处理后将外链图片存储至本地缓存,获得外链图片的本地缓存路径;将外链图片的来源更新为本地缓存路径,并将图片转换为内联图片,最后根据用户需求发送邮件,即可实现邮件外链图片的转存。
请参照图2,图2是本申请一些实施例中的邮件外链图片转存方法的获得请求响应报文的一种流程图。根据本发明实施例,所述获取邮箱登录状态信息,根据邮箱登录状态信息初始化预设外链图片转存模型,并监控浏览器的网络请求信息,具体包括:
S21、获取邮箱登录状态信息,包括已登录和未登录;
S22、判断所述邮箱登录状态,若为已登录,则初始化预设外链图片转存模型并在前端开发框架主进程中调用同步执行,开启网络监控;
S23、所述网络监控监控浏览器的网络请求信息,若所述网络请求信息为网络收到请求响应,则获得请求ID编号;
S24、根据所述请求ID编号对应获得请求响应报文。
其中,在处理邮件外链图片转存时,首先要获取邮箱登录状态信息,然后判断邮箱登录状态,包括已登录和未登录,检测到登录成功以后做好外链图片转存模型的初始化准备,同时在前端开发框架主进程中调用同步执行开启网络监控,用来监控浏览器的网络请求信息,当监测到网络请求信息的事件类型为网络收到响应时,表示超文本传输协议的请求响应成功,则获取请求ID编号,ID的全称为Identity document,指唯一编码、身份证标识号,通过请求ID编号可以获取到对应超文本传输协议请求的响应报文,超文本传输协议报文是超文本传输协议交互时所规定请求和响应的规则。请求端(客户端)向响应端(服务器端)请求的发送的信息叫做请求报文,响应端 (服务器端) 反馈请求端 (客户端) 的叫做响应报文。
根据本发明实施例,所述获取剪切板信息,根据剪切板信息对应获得img图片标签信息,并添加事件监听器,具体包括:
获取剪切板信息,并输入邮件编辑器中获得超文本标记语言信息;
通过正则表达式判断所述超文本标记语言信息中是否包含img图片标签信息;
若包含,则添加事件监听器,包括onload和onerror。
其中,获取剪切板信息,通过对剪切板信息的监听、检测,在邮件编辑器中粘贴超文本标记语言内容时,获取超文本标记语言文本,通过正则表达式进行匹配,检测正文中是否包含img图片标签信息,img,全称:ImageName。是图像文件的后缀名,也就是我们常用的一个文件扩展名。如果正文中包含,则添加事件监听器,包括onload和onerror;onerror事件是javascript中的事件之一。只要页面中出现脚本错误,就会产生onerror事件。onerror是指启动一个错误处理程序并指定该子程序在一个过程中的位置,也可用来禁止一个错误处理程序。onload事件是在网页中的所有内容(包括图片、样式表、脚本等)都加载完成后触发的事件。它常用于在页面加载完成后执行一些操作,例如初始化页面元素、绑定事件监听器等。
请参照图3,图3是本申请一些实施例中的邮件外链图片转存方法的获得网络请求信息的一种流程图。根据本发明实施例,所述通过所述事件监听器获得外链图片的加载状态信息,根据加载状态信息获得所述网络请求信息,具体包括:
S31、通过所述事件监听器获得外链图片的加载状态信息,包括加载成功和加载失败;
S32、若所述加载状态信息为加载成功,则onload监听器启动所述网络监控;
S33、所述网络监控获得浏览器的网络请求信息。
需要说明的是,通过onload和onerror事件监听器获得外链图片的加载状态信息,包括加载成功和加载失败,如果加载状态信息为加载成功,则触发onload事件,同时启动网络监控,通过网络监控进而获得浏览器的网络请求信息。
请参照图4,图4为本申请实施例中的邮件外链图片转存方法的获得图片本地缓存路径的一种流程图。根据本发明实施例,所述判断所述外链图片的加载来源模式,根据加载来源模式对应获得外链图片处理方式并获得外链图片的本地缓存路径,具体包括:
S41、通过预设邮件外链图片转存模型检测判断外链图片的加载来源模式;
S42、所述加载来源模式包括外链网址模式、防外链网址模式以及外链Cookie模式;
S43、根据所述加载来源模式对应获得外链图片处理方式;
S44、根据所述外链图片处理方式获得所述外链图片的本地缓存路径。
其中,通过获取网络请求信息后进而得到请求响应报文,结合网络请求信息和请求响应报文,通过预设邮件外链图片转存模型检测判断外链图片的加载来源模式,其中加载来源模式包括外链网址模式、防外链网址模式以及外链Cookie模式,外链网址模式,该模式下外链图片来源可能是外部网络地址或者是内网地址,发件人可以正常访问,但是邮件发送出去后,由于收件人和发件人不在同一个网段,无法访问图片;防外链网址模式是指图片来源的网站有反外链机制,检测了referer,粘贴到邮件系统时页面来源发生改变,无法访问;referer存在于计算机行业中,它的基本用途是存在于 http请求头内部的用于标识访问者来源网页的标识字段,通常在普通用户的访问下是不会出现的,常常出现于各个网页之间的相互跳转,可以实现防外链功能,外链Cookie模式,粘贴的外链图片是从一些需要登录才能访问的内部办公系统中复制出来的,图片访问地址是一个动态接口,会通过cookie鉴权用户,Cookie,有时也用其复数形式Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息;根据图片加载来源模式对应获得图片处理方式,通过处理后获得图片的本地缓存路径。
根据本发明实施例,还包括:
若所述加载来源模式为外链网址模式,则获取外链图片的网络路径信息和二进制数据流信息;
将所述二进制数据流保存至本地缓存目录获得本地缓存路径;
在全局变量图谱中建立所述网络路径与所述本地缓存路径的映射关系;
将所述img图片标签信息发送至所述前端开发框架主进程;
所述前端开发框架主进程根据所述映射关系查找获得所述地缓存路径。
需要说明的是,若加载来源模式为外链网址模式,且图片加载成功,则根据onload事件监听器启动网络监控后获得的请求响应报文获得图片的网络路径信息和二进制数据流信息,将图片文件的二进制数据流保存到本地缓存目录,并在全局变量图谱中建立图片的网络路径与本地缓存路径的映射关系,将img图片标签信息发送至所述前端开发框架主进程中,前端开发框架主进程根据所述映射关系查找获得所述地缓存路径。
根据本发明实施例,还包括:
若所述加载来源模式为防外链网址模式,则获取剪切板信息;
通过所述前端开发框架和封装节点组件获得所述剪切板信息中的超文本标记语言、原始二进制数据以及来源网址对应的原始网址信息;
构造http请求头,并将来源网址作为Referer附加到http请求头生成访问请求;
根据所述访问请求访问原始图片信息,并下载原始图片至本地缓存路径。
其中,若加载来源模式为防外链网址模式,则获取剪切板信息,剪切板信息中包含了StartHTML,SourceURL和html文本,HTML是用来描述网页的一种语言,StartHTML是HTML文档中有序列表中第一个列表项的起始值,SourceURL是来源网址或脚本来源网址,通过前端开发框架和封装节点组件获得所述剪切板信息中的超文本标记语言、原始二进制数据以及原始网址信息;封装节点组件是指使用c++封装node组件;创建http请求,并构造http请求头,将Source URL做为Referer附加到http请求头中作为访问请求访问源服务器的原始图片信息,下载成功后图片保存到本地缓存路径。
根据本发明实施例,还包括:
若所述防外链网址模式下载图片失败,则获取浏览器的cookie存储路径信息和cookie数据库信息;
通过卷影复制模型复制所述cookie数据库信息为图片数据库;
通过SQLite获得所述图片数据库中的cookie键值对;
根据所述cookie键值对和所述Referer访问原始图片并下载至所述本地缓存路径。
其中,如果前一步构造Referer之后访问源服务器下载失败,则说明为外链Cookie模式,从浏览器数据库中读取cookie,进行二次重试加载,通过卷影复制模型复制cookie数据库信息为图片数据库,再通过SQLite获得所述图片数据库中的cookie键值对,将获取到的cookie键值对和Referer访问原始图片,保证可以正常下载,图片下载后保存至本地缓存路径;SQLite,是一款轻型的数据库,是关系型数据库管理系统,它包含在一个相对小的C库中;cookie是服务器通知客户端保存键值对的一种技术,cookie键值对是真正携带信息的部分。
本发明还公开了邮件外链图片转存系统,包括存储器和处理器,所述存储器中包括邮件外链图片转存方法程序,所述邮件外链图片转存方法程序被所述处理器执行时实现如下步骤:
获取邮箱登录状态信息,根据邮箱登录状态信息初始化预设外链图片转存模型,并监控浏览器的网络请求信息;
获取剪切板信息,根据剪切板信息对应获得img图片标签信息,并添加事件监听器;
通过所述事件监听器获得外链图片的加载状态信息,根据加载状态信息获得所述网络请求信息;
判断所述外链图片的加载来源模式,根据加载来源模式对应获得外链图片处理方式并获得外链图片的本地缓存路径;
将所述外链图片来源更新为所述本地缓存路径,并转换为内联图片;
根据用户需求发送邮件。
其中,获取邮箱登录状态是为了确认是否启动并初始化预设外链图片转存模型,外链图片转存模型可实现网络请求的监控、时间监听器、外链图片处理方式、图片来源路径更新等。初始化后,对浏览器的网络请求信息进行监控,在图片转存过程中会用到剪切板,获取剪切板信息并判断剪切板中是否存在img图片标签信息,如果有img图片标签信息,则添加事件监听器,通过事件监听器可以获得外链图片的加载状态信息,判断外链图片是否加载成功,如果加载成功则获得网络请求信息,通过网络请求信息判断外链图片的加载来源模式,每种来源模式都有各自不同的特征,然后根据来源模式匹配相对应的图片处理方式,通过处理后将外链图片存储至本地缓存,获得外链图片的本地缓存路径;将外链图片的来源更新为本地缓存路径,并将图片转换为内联图片,最后根据用户需求发送邮件,即可实现邮件外链图片的转存。
根据本发明实施例,所述获取邮箱登录状态信息,根据邮箱登录状态信息初始化预设外链图片转存模型,并监控浏览器的网络请求信息,具体包括:
获取邮箱登录状态信息,包括已登录和未登录;
判断所述邮箱登录状态,若为已登录,则初始化预设外链图片转存模型并在前端开发框架主进程中调用同步执行,开启网络监控;
所述网络监控监控浏览器的网络请求信息,若所述网络请求信息为网络收到请求响应,则获得请求ID编号;
根据所述请求ID编号对应获得请求响应报文。
其中,在处理邮件外链图片转存时,首先要获取邮箱登录状态信息,然后判断邮箱登录状态,包括已登录和未登录,检测到登录成功以后做好外链图片转存模型的初始化准备,同时在前端开发框架主进程中调用同步执行开启网络监控,用来监控浏览器的网络请求信息,当监测到网络请求信息的事件类型为网络收到响应时,表示超文本传输协议的请求响应成功,则获取请求ID编号,ID的全称为Identity document,指唯一编码、身份证标识号,通过请求ID编号可以获取到对应超文本传输协议请求的响应报文,超文本传输协议报文是超文本传输协议交互时所规定请求和响应的规则。请求端(客户端)向响应端(服务器端)请求的发送的信息叫做请求报文,响应端 (服务器端) 反馈请求端 (客户端) 的叫做响应报文。
根据本发明实施例,所述获取剪切板信息,根据剪切板信息对应获得img图片标签信息,并添加事件监听器,具体包括:
获取剪切板信息,并输入邮件编辑器中获得超文本标记语言信息;
通过正则表达式判断所述超文本标记语言信息中是否包含img图片标签信息;
若包含,则添加事件监听器,包括onload和onerror。
其中,获取剪切板信息,通过对剪切板信息的监听、检测,在邮件编辑器中粘贴超文本标记语言内容时,获取超文本标记语言文本,通过正则表达式进行匹配,检测正文中是否包含img图片标签信息,img,全称:ImageName。是图像文件的后缀名,也就是我们常用的一个文件扩展名。如果正文中包含,则添加事件监听器,包括onload和onerror;onerror事件是javascript中的事件之一。只要页面中出现脚本错误,就会产生onerror事件。onerror是指启动一个错误处理程序并指定该子程序在一个过程中的位置,也可用来禁止一个错误处理程序。onload事件是在网页中的所有内容(包括图片、样式表、脚本等)都加载完成后触发的事件。它常用于在页面加载完成后执行一些操作,例如初始化页面元素、绑定事件监听器等。
根据本发明实施例,所述通过所述事件监听器获得外链图片的加载状态信息,根据加载状态信息获得所述网络请求信息,具体包括:
通过所述事件监听器获得外链图片的加载状态信息,包括加载成功和加载失败;
若所述加载状态信息为加载成功,则onload监听器启动所述网络监控;
所述网络监控获得浏览器的网络请求信息。
需要说明的是,通过onload和onerror事件监听器获得外链图片的加载状态信息,包括加载成功和加载失败,如果加载状态信息为加载成功,则触发onload事件,同时启动网络监控,通过网络监控进而获得浏览器的网络请求信息。
根据本发明实施例,所述判断所述外链图片的加载来源模式,根据加载来源模式对应获得外链图片处理方式并获得外链图片的本地缓存路径,具体包括:
通过预设邮件外链图片转存模型检测判断外链图片的加载来源模式;
所述加载来源模式包括外链网址模式、防外链网址模式以及外链Cookie模式;
根据所述加载来源模式对应获得外链图片处理方式;
根据所述外链图片处理方式获得所述外链图片的本地缓存路径。
其中,通过获取网络请求信息后进而得到请求响应报文,结合网络请求信息和请求响应报文,通过预设邮件外链图片转存模型检测判断外链图片的加载来源模式,其中加载来源模式包括外链网址模式、防外链网址模式以及外链Cookie模式,外链网址模式,该模式下外链图片来源可能是外部网络地址或者是内网地址,发件人可以正常访问,但是邮件发送出去后,由于收件人和发件人不在同一个网段,无法访问图片;防外链网址模式是指图片来源的网站有反外链机制,检测了referer,粘贴到邮件系统时页面来源发生改变,无法访问;referer存在于计算机行业中,它的基本用途是存在于 http请求头内部的用于标识访问者来源网页的标识字段,通常在普通用户的访问下是不会出现的,常常出现于各个网页之间的相互跳转,可以实现防外链功能,外链Cookie模式,粘贴的外链图片是从一些需要登录才能访问的内部办公系统中复制出来的,图片访问地址是一个动态接口,会通过cookie鉴权用户,Cookie,有时也用其复数形式Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息;根据图片加载来源模式对应获得图片处理方式,通过处理后获得图片的本地缓存路径。
根据本发明实施例,还包括:
若所述加载来源模式为外链网址模式,则获取外链图片的网络路径信息和二进制数据流信息;
将所述二进制数据流保存至本地缓存目录获得本地缓存路径;
在全局变量图谱中建立所述网络路径与所述本地缓存路径的映射关系;
将所述img图片标签信息发送至所述前端开发框架主进程;
所述前端开发框架主进程根据所述映射关系查找获得所述地缓存路径。
需要说明的是,若加载来源模式为外链网址模式,且图片加载成功,则根据onload事件监听器启动网络监控后获得的请求响应报文获得图片的网络路径信息和二进制数据流信息,将图片文件的二进制数据流保存到本地缓存目录,并在全局变量图谱中建立图片的网络路径与本地缓存路径的映射关系,将img图片标签信息发送至所述前端开发框架主进程中,前端开发框架主进程根据所述映射关系查找获得所述地缓存路径。
根据本发明实施例,还包括:
若所述加载来源模式为防外链网址模式,则获取剪切板信息;
通过所述前端开发框架和封装节点组件获得所述剪切板信息中的超文本标记语言、原始二进制数据以及来源网址对应的原始网址信息;
构造http请求头,并将来源网址作为Referer附加到http请求头生成访问请求;
根据所述访问请求访问原始图片信息,并下载原始图片至本地缓存路径。
其中,若加载来源模式为防外链网址模式,则获取剪切板信息,剪切板信息中包含了StartHTML,SourceURL和html文本,HTML是用来描述网页的一种语言,StartHTML是HTML文档中有序列表中第一个列表项的起始值,SourceURL是来源网址或脚本来源网址,通过前端开发框架和封装节点组件获得所述剪切板信息中的超文本标记语言、原始二进制数据以及原始网址信息;封装节点组件是指使用c++封装node组件;创建http请求,并构造http请求头,将Source URL做为Referer附加到http请求头中作为访问请求访问源服务器的原始图片信息,下载成功后图片保存到本地缓存路径。
根据本发明实施例,还包括:
若所述防外链网址模式下载图片失败,则获取浏览器的cookie存储路径信息和cookie数据库信息;
通过卷影复制模型复制所述cookie数据库信息为图片数据库;
通过SQLite获得所述图片数据库中的cookie键值对;
根据所述cookie键值对和所述Referer访问原始图片并下载至所述本地缓存路径。
其中,如果前一步构造Referer之后访问源服务器下载失败,则说明为外链Cookie模式,从浏览器数据库中读取cookie,进行二次重试加载,通过卷影复制模型复制cookie数据库信息为图片数据库,再通过SQLite获得所述图片数据库中的cookie键值对,将获取到的cookie键值对和Referer访问原始图片,保证可以正常下载,图片下载后保存至本地缓存路径;SQLite,是一款轻型的数据库,是关系型数据库管理系统,它包含在一个相对小的C库中;cookie是服务器通知客户端保存键值对的一种技术,cookie键值对是真正携带信息的部分。
本发明第三方面提供了一种可读存储介质,所述可读存储介质中包括邮件外链图片转存方法程序,所述邮件外链图片转存方法程序被处理器执行时,实现如上述任一项所述的邮件外链图片转存方法的步骤。
本发明公开的邮件外链图片转存方法、系统和介质,通过获取邮箱登录状态信息后监控浏览器的网络请求信息,同时获取剪切板信息并根据img图片标签信息添加事件监听器,通过事件监听器获得外链图片的加载状态信息并进一步获得网络请求信息,判断图片的加载来源模式,根据不同的加载来源模式对应获得不同的图片处理方式并将图片下载至本地缓存路径,将图片来源更新为本地缓存路径并转换为内联图片后发送邮件。通过判断图片的来源模式,采用不同方式将图片下载至本地缓存路径,并更新图片来源的方式,实现了邮件外链图片转存的技术。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandoMACcessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (8)
1.一种邮件外链图片转存方法,其特征在于,包括:
获取邮箱登录状态信息,根据邮箱登录状态信息初始化预设外链图片转存模型,并监控浏览器的网络请求信息;
获取剪切板信息,根据剪切板信息对应获得img图片标签信息,并添加事件监听器;
通过所述事件监听器获得外链图片的加载状态信息,根据加载状态信息获得所述网络请求信息;
判断所述外链图片的加载来源模式,根据加载来源模式对应获得外链图片处理方式并获得外链图片的本地缓存路径;
将所述外链图片来源更新为所述本地缓存路径,并转换为内联图片;
根据用户需求发送邮件;
所述获取邮箱登录状态信息,根据邮箱登录状态信息初始化预设外链图片转存模型,并监控浏览器的网络请求信息,具体包括:
获取邮箱登录状态信息,包括已登录和未登录;
判断所述邮箱登录状态,若为已登录,则初始化预设外链图片转存模型并在前端开发框架主进程中调用同步执行,开启网络监控;
所述网络监控监控浏览器的网络请求信息,若所述网络请求信息为网络收到请求响应,则获得请求ID编号;
根据所述请求ID编号对应获得请求响应报文;
所述获取剪切板信息,根据剪切板信息对应获得img图片标签信息,并添加事件监听器,具体包括:
获取剪切板信息,并输入邮件编辑器中获得超文本标记语言信息;
通过正则表达式判断所述超文本标记语言信息中是否包含img图片标签信息;
若包含,则添加事件监听器,包括onload和onerror。
2.根据权利要求1所述的邮件外链图片转存方法,其特征在于,所述通过所述事件监听器获得外链图片的加载状态信息,根据加载状态信息获得所述网络请求信息,具体包括:
通过所述事件监听器获得外链图片的加载状态信息,包括加载成功和加载失败;
若所述加载状态信息为加载成功,则onload监听器启动所述网络监控;
所述网络监控获得浏览器的网络请求信息。
3.根据权利要求2所述的邮件外链图片转存方法,其特征在于,所述判断所述外链图片的加载来源模式,根据加载来源模式对应获得外链图片处理方式并获得外链图片的本地缓存路径,具体包括:
通过预设邮件外链图片转存模型检测判断外链图片的加载来源模式;
所述加载来源模式包括外链网址模式、防外链网址模式以及外链Cookie模式;
根据所述加载来源模式对应获得外链图片处理方式;
根据所述外链图片处理方式获得所述外链图片的本地缓存路径。
4.根据权利要求3所述的邮件外链图片转存方法,其特征在于,还包括:
若所述加载来源模式为外链网址模式,则获取外链图片的网络路径信息和二进制数据流信息;
将所述二进制数据流保存至本地缓存目录获得本地缓存路径;
在全局变量图谱中建立所述网络路径与所述本地缓存路径的映射关系;
将所述img图片标签信息发送至所述前端开发框架主进程;
所述前端开发框架主进程根据所述映射关系查找获得所述地缓存路径。
5.根据权利要求4所述的邮件外链图片转存方法,其特征在于,还包括:
若所述加载来源模式为防外链网址模式,则获取剪切板信息;
通过所述前端开发框架和封装节点组件获得所述剪切板信息中的超文本标记语言、原始二进制数据以及来源网址对应的原始网址信息;
构造http请求头,并将来源网址作为Referer附加到http请求头生成访问请求;
根据所述访问请求访问原始图片信息,并下载原始图片至本地缓存路径。
6.根据权利要求5所述的邮件外链图片转存方法,其特征在于,还包括:
若所述防外链网址模式下载图片失败,则获取浏览器的cookie存储路径信息和cookie数据库信息;
通过卷影复制模型复制所述cookie数据库信息为图片数据库;
通过SQLite获得所述图片数据库中的cookie键值对;
根据所述cookie键值对和所述Referer访问原始图片并下载至所述本地缓存路径。
7.一种邮件外链图片转存系统,其特征在于,包括存储器和处理器,所述存储器中包括邮件外链图片转存方法程序,所述邮件外链图片转存方法程序被所述处理器执行时实现如下步骤:
获取邮箱登录状态信息,根据邮箱登录状态信息初始化预设外链图片转存模型,并监控浏览器的网络请求信息;
获取剪切板信息,根据剪切板信息对应获得img图片标签信息,并添加事件监听器;
通过所述事件监听器获得外链图片的加载状态信息,根据加载状态信息获得所述网络请求信息;
判断所述外链图片的加载来源模式,根据加载来源模式对应获得外链图片处理方式并获得外链图片的本地缓存路径;
将所述外链图片来源更新为所述本地缓存路径,并转换为内联图片;
根据用户需求发送邮件;
所述获取邮箱登录状态信息,根据邮箱登录状态信息初始化预设外链图片转存模型,并监控浏览器的网络请求信息,具体包括:
获取邮箱登录状态信息,包括已登录和未登录;
判断所述邮箱登录状态,若为已登录,则初始化预设外链图片转存模型并在前端开发框架主进程中调用同步执行,开启网络监控;
所述网络监控监控浏览器的网络请求信息,若所述网络请求信息为网络收到请求响应,则获得请求ID编号;
根据所述请求ID编号对应获得请求响应报文;
所述获取剪切板信息,根据剪切板信息对应获得img图片标签信息,并添加事件监听器,具体包括:
获取剪切板信息,并输入邮件编辑器中获得超文本标记语言信息;
通过正则表达式判断所述超文本标记语言信息中是否包含img图片标签信息;
若包含,则添加事件监听器,包括onload和onerror。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括一种邮件外链图片转存方法程序,所述一种邮件外链图片转存方法程序被处理器执行时,实现如权利要求1至6中任一项所述的一种邮件外链图片转存方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311718259.5A CN117411847B (zh) | 2023-12-14 | 2023-12-14 | 一种邮件外链图片转存方法、系统和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311718259.5A CN117411847B (zh) | 2023-12-14 | 2023-12-14 | 一种邮件外链图片转存方法、系统和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117411847A CN117411847A (zh) | 2024-01-16 |
CN117411847B true CN117411847B (zh) | 2024-03-08 |
Family
ID=89492936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311718259.5A Active CN117411847B (zh) | 2023-12-14 | 2023-12-14 | 一种邮件外链图片转存方法、系统和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117411847B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079061A (zh) * | 2007-04-09 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 一种网页截屏系统及其实现方法 |
CN102368196A (zh) * | 2011-10-02 | 2012-03-07 | 上海量明科技发展有限公司 | 客户端内容发送窗口中编辑动态图片的方法、终端及系统 |
CN103607342A (zh) * | 2013-11-07 | 2014-02-26 | 北京奇虎科技有限公司 | 一种邮件内容的加载方法和装置 |
KR101541089B1 (ko) * | 2014-01-28 | 2015-07-31 | 케이엠에스랩 주식회사 | 이미지 처리를 수행하는 방법, 웹 에디터 및 컴퓨터 판독 가능한 기록 매체 |
CN105160018A (zh) * | 2015-09-25 | 2015-12-16 | 百度在线网络技术(北京)有限公司 | 一种复制/粘贴图片的方法、装置和系统 |
CN105446625A (zh) * | 2015-11-26 | 2016-03-30 | 努比亚技术有限公司 | 基于浏览器的图片粘贴方法及装置 |
CN110737860A (zh) * | 2019-09-20 | 2020-01-31 | 中国联合网络通信集团有限公司 | 一种富文本图片插入方法和装置 |
CN111309312A (zh) * | 2018-12-10 | 2020-06-19 | 阿里巴巴集团控股有限公司 | 富文本对象的编辑方法、装置、终端设备及计算机存储介质 |
CN112417340A (zh) * | 2020-12-07 | 2021-02-26 | 常州微亿智造科技有限公司 | 网页图片处理方法、计算机设备和存储介质 |
CN116954450A (zh) * | 2023-07-24 | 2023-10-27 | 平安国际融资租赁有限公司 | 针对前端网页的截图方法以及装置、存储介质、终端 |
-
2023
- 2023-12-14 CN CN202311718259.5A patent/CN117411847B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079061A (zh) * | 2007-04-09 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 一种网页截屏系统及其实现方法 |
CN102368196A (zh) * | 2011-10-02 | 2012-03-07 | 上海量明科技发展有限公司 | 客户端内容发送窗口中编辑动态图片的方法、终端及系统 |
CN103607342A (zh) * | 2013-11-07 | 2014-02-26 | 北京奇虎科技有限公司 | 一种邮件内容的加载方法和装置 |
KR101541089B1 (ko) * | 2014-01-28 | 2015-07-31 | 케이엠에스랩 주식회사 | 이미지 처리를 수행하는 방법, 웹 에디터 및 컴퓨터 판독 가능한 기록 매체 |
CN105160018A (zh) * | 2015-09-25 | 2015-12-16 | 百度在线网络技术(北京)有限公司 | 一种复制/粘贴图片的方法、装置和系统 |
CN105446625A (zh) * | 2015-11-26 | 2016-03-30 | 努比亚技术有限公司 | 基于浏览器的图片粘贴方法及装置 |
CN111309312A (zh) * | 2018-12-10 | 2020-06-19 | 阿里巴巴集团控股有限公司 | 富文本对象的编辑方法、装置、终端设备及计算机存储介质 |
CN110737860A (zh) * | 2019-09-20 | 2020-01-31 | 中国联合网络通信集团有限公司 | 一种富文本图片插入方法和装置 |
CN112417340A (zh) * | 2020-12-07 | 2021-02-26 | 常州微亿智造科技有限公司 | 网页图片处理方法、计算机设备和存储介质 |
CN116954450A (zh) * | 2023-07-24 | 2023-10-27 | 平安国际融资租赁有限公司 | 针对前端网页的截图方法以及装置、存储介质、终端 |
Also Published As
Publication number | Publication date |
---|---|
CN117411847A (zh) | 2024-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7814234B2 (en) | Offline execution of web based applications | |
US10015226B2 (en) | Methods for making AJAX web applications bookmarkable and crawlable and devices thereof | |
EP3002927B1 (en) | Page redirection method, routing device, terminal device and system | |
US8271836B2 (en) | Capturing diagnostics in web browser applications | |
US8234406B2 (en) | Method of redirecting client requests to web services | |
CN105743945B (zh) | 基于切换下载源的文件下载方法及系统 | |
KR20140093491A (ko) | 단축 url의 관리 방법, 관리 장치 및 그 관리를 수행하는 컴퓨터 프로그램을 저장한 저장 매체 | |
CN105516333A (zh) | 一种基于网页的交互方法和系统 | |
EP1550034A2 (en) | A system and method to re-synchronize client devices while refreshing them from a server | |
US8793326B2 (en) | System, method and computer program product for reconstructing data received by a computer in a manner that is independent of the computer | |
CN110020242A (zh) | 一种基于Web的文档阅读进度同步方法及装置 | |
CN112818270B (zh) | 数据跨域传递方法、装置及计算机设备 | |
CN117411847B (zh) | 一种邮件外链图片转存方法、系统和介质 | |
CN111818179A (zh) | 用户请求的处理方法、装置、计算设备和介质 | |
US11645033B2 (en) | Method and apparatus for accessing proprietary resources on a Co-Browse session | |
CN113779445A (zh) | 页面的渲染方法、装置、系统、设备及存储介质 | |
CN115914329B (zh) | 信息推送方法、装置、电子设备及可读存储介质 | |
CN113783911B (zh) | 文件的下载方法、装置、系统、设备及存储介质 | |
US10846149B1 (en) | Event context service | |
CN112688978A (zh) | 根据数据大小的自适应数据通信方法 | |
CN117112940A (zh) | 一种离线数据显示方法、装置、电子设备及可读存储介质 | |
KR101389140B1 (ko) | 서비스 유알아이와 거점정보를 통한 메시지 중계 장치 및 그 방법 | |
CN103327033A (zh) | 一种提高网络资源访问速度的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |