Others

您能否创建一个 PDF,在收件人首次打开文件时自动生成已读回执并将其通过电子邮件发送给发件人

Can You Create a PDF That Automatically Generates and Emails a Read Receipt to the Sender When the Recipient First Opens the File

PDF 阅读回执如何工作以及为什么它们没有内置到格式中

几十年来,电子邮件客户端一直支持已读回执,当收件人打开邮件时,会自动向发件人发送通知。此功能在商务通信中已变得非常常见,以至于许多人认为 PDF 文档也必须具有此功能,而 PDF 文档可以说是发送重要商务文档的最常见格式。然而,PDF 格式规范不包括本机阅读回执机制。默认情况下,在标准 PDF 阅读器中打开的标准 PDF 文件在打开时不会向任何人发送任何通知。

服务器端跟踪避免了所有这些陷阱。

基于链接的交付是更可靠的路径。

出现这种情况的技术原因是 PDF 被设计为独立的离线文档。该格式规范自 2008 年起由 ISO 维护,定义了 PDF 的视觉呈现方式,但没有定义任何网络通信行为。在没有互联网连接的设备上打开的 PDF 文件必须与在连接的设备上打开的同一文件完全相同。将强制网络回调添加到故意与网络无关的格式中会破坏该设计原则。

一些PDF安全解决方案通过在PDF中嵌入JavaScript来绕过此限制,该JavaScript在文档打开时尝试发出网络请求。这种方法可以工作,但不可靠,因为大多数 PDF 阅读器出于安全原因默认阻止 JavaScript 执行。如果用户未禁用嵌入的 JavaScript,Adobe Acrobat 可能会执行它。基于浏览器的 PDF 查看器,包括 Chrome 的 PDFium 和 Firefox 的 PDF.js,根本不执行 PDF JavaScript。因此,基于 PDF JavaScript 构建的已读回执机制将对某些收件人触发,而对其他收件人则默默失败,从而使其不适合任何需要发送确认的用途。

WukongPDF

尝试保护 PDF

无需安装。直接在您的浏览器中工作。

立即开始 →

基于 JavaScript 的读回执方法及其可靠性限制

最常见的 DIY 已读回执实现在 PDF 中嵌入 JavaScript 操作,该操作在文档打开事件时触发。该脚本构造一个包含唯一文档标识符和当前时间戳的 URL,然后尝试加载该 URL,通常作为隐藏图像或 XMLHttpRequest。侦听目标 URL 的 Web 服务器会记录该请求并记录当时打开了具有该标识符的文档。

实际中可靠性问题很严重。当 PDF 尝试连接到外部站点时,Adobe Acrobat 会向用户发出警告,并为他们提供阻止连接的选项。大多数企业 PDF 部署将 Acrobat 配置为默认阻止外部连接作为安全策略。基于浏览器的查看器完全忽略该请求,因为它们的 JavaScript 引擎没有实现脚本所需的网络 API。移动 PDF 阅读器同样会阻止或忽略嵌入的 JavaScript 网络调用。发件人仅使用启用了 JavaScript 并允许外部连接的桌面 Acrobat 接收来自收件人的已读回执,这在典型的收件人群体中只占少数。

即使 JavaScript 成功触发,已读回执也提供有限的信息。它仅确认 PDF 是由执行 JavaScript 的 PDF 阅读器打开的。它不能确认是否有人阅读了文档、文档是否正确呈现或者收件人是否滚动过第一页。自动文档处理系统生成的已读回执会打开并索引每个传入的 PDF,从而产生误报,与真正的收件人打开无法区分。

通过托管 PDF 链接进行服务器端跟踪

嵌入式 JavaScript 的更可靠替代方案是使用托管 PDF 链接进行服务器端跟踪。发件人不是将 PDF 附加到电子邮件中,而是将文档上传到 Web 服务器并向收件人发送用于查看或下载该文档的链接。服务器记录对 PDF URL 的每个请求,包括每次访问的时间戳、IP 地址和浏览器用户代理字符串。无论收件人的 PDF 阅读器、JavaScript 设置或设备类型如何,这种服务器端方法都会捕获每次访问,因为跟踪甚至在提供 PDF 之前就发生在 HTTP 请求级别。

服务器端跟踪还可以实现更精细的分析。服务器可以记录收件人是否下载了整个文件或仅获取了前几千字节,这表明他们是否可能查看了该文档或仅单击了链接。如果通过支持逐页加载的查看器提供 PDF,服务器可以跟踪访问了哪些页面以及访问了多长时间。与简单的打开/未打开的二进制信号相比,这些参与度指标提供了更丰富的文档交互情况。

服务器端跟踪的主要缺点是它需要将文档交付工作流程从电子邮件附件更改为托管链接。习惯于以电子邮件附件形式接收 PDF 的收件人可能会发现访问托管文档所需的额外点击操作很不方便。对于需要基于附件的交付的PDF共享工作流程,服务器端跟踪无法取代附件模型。对于可接受基于链接的交付的工作流程,它提供了迄今为止最可靠的读取跟踪。

使用第三方文档分析平台进行 PDF 阅读跟踪

一些商业文档分析平台提供 PDF 阅读跟踪作为托管服务。这些平台为每个文档和每个收件人生成一个唯一的跟踪链接,在其基础设施上托管 PDF,并提供一个仪表板,显示打开时间、阅读持续时间估计、页面级参与度以及收件人与其他人共享链接时的转发跟踪。

企业级平台解决了文档跟踪带来的隐私和合规性问题。它们提供面向收件人的透明度通知,遵守 GDPR 和 CCPA 对跟踪披露的要求,并提供限制跟踪数据存储时间的数据保留策略。它们还支持与 CRM 和文档管理系统集成,以便读取状态更新自动流入销售、法律和合规团队已经工作的系统。

对于需要对具有法律意义的文档(例如合同要约、监管通知或股东通信)进行可靠的阅读确认的组织来说,服务器端链接跟踪与商业分析平台的结合可以提供可靠的交付和访问证据。服务器日志与平台的分析相结合,创建的审计跟踪比自我报告的电子邮件阅读回执或不可靠的嵌入式 JavaScript 通知要强大得多。

您可以在没有第三方服务的情况下自行构建 PDF 阅读回执系统

构建自托管 PDF 阅读跟踪系统需要三个组件:用于托管 PDF 和日志访问请求的 Web 服务器、用于存储跟踪标识符和访问记录的数据库以及用于生成唯一可识别 PDF 的文档生成工作流程。

每个组件都单独简单。集成和运维是工作量积累的地方。

Web 服务器组件是最简单的。任何标准 HTTP 服务器、Apache、Nginx 或启用访问日志记录的云存储服务都可以记录 PDF URL 的访问时间。数据库组件存储一个将文档标识符映射到收件人电子邮件地址或姓名的表,以及一个记录每个访问事件及其时间戳和 IP 地址的表。一个简单的 Web 应用程序仪表板查询这些表以显示每个已发送文档的阅读状态。

操作复杂性来自于随着时间的推移维护系统。访问日志会累积,需要轮换和归档策略。根据 GDPR,访问日志中的 IP 地址可能被视为个人数据,要求系统实现数据保留和删除功能。如果跟踪系统离线,即使是暂时离线,单击文档链接的收件人也会收到错误消息而不是文档,这比根本不跟踪更糟糕。对于拥有现有 Web 基础设施和开发资源的团队来说,具有服务器端跟踪功能的交互式 PDF 是一个合理的构建。对于没有这些资源的团队来说,商业平台是更实际的选择。

WukongPDF 的文档共享功能包括基于链接的交付,以及在每个收件人打开共享文档时进行记录的访问跟踪。这种服务器端方法提供了可靠的读取确认,不受嵌入式 JavaScript 跟踪的限制,并且跟踪数据与文档管理工作流程集成,而不需要单独的分析平台。

PDF 阅读跟踪的隐私维度在任何实施中都值得明确关注。应告知跟踪文档的接收者他们的访问将被记录、将记录哪些数据、将保留多长时间以及目的。在受 GDPR 管辖的司法管辖区中,这种披露是一项法律要求,而不仅仅是最佳实践。在所有情况下,透明的跟踪实践都可以维持与文档收件人的信任,同时提供发件人所需的送达确认。

最终,构建自定义阅读回执系统和使用商业平台之间的选择归结为自制还是购买决策,这取决于您组织的技术资源、文档量以及阅读确认的法律辩护要求。每月发送少量跟踪文档的组织可以通过基本的服务器端日志记录和手动状态检查进行管理。每周发送数百份跟踪文档的组织,特别是在法律、财务或监管环境中,阅读确认具有合规性,可以从专用文档分析平台提供的可靠性、审计跟踪和支持中受益。

发送文档跟踪无需收件人操作、无需安装软件、也无需更改 JavaScript 权限,即可生成最可靠的读取确认数据。服务器端链接跟踪实现了所有这三个目标,并代表了专业业务通信工作流程中 PDF 阅读回执实施的当前最佳实践。

WukongPDF

尝试保护 PDF

无需安装。直接在您的浏览器中工作。

立即开始 →