如何将 blob 文件附加到 HTML href="mailto:"

How to attach blob file into HTML href="mailto:"

我有一个文件可以通过 URL 获取(需要授权)。我创建了一个 mailto: link 并想在邮件中附加此文件。我该怎么做?

类似于"mailto:toto@gmail.fr&attachment=site.com/file.pdf"

如果您希望有一个通用的解决方案,那是不可能的。 RFC 2368 中描述的 mailto 协议告诉我们:

The creator of a mailto URL cannot expect the resolver of a URL to understand more than the "subject" and "body" headers.

尽管其他 headers 可能 被某些邮件客户端使用和理解,但这不是一个普遍兼容的解决方案。除非您告诉您的客户专门使用您知道支持更多 header 的特定邮件客户端打开这些链接(例如假设的 attachment header),否则您应该认为这是不可行的.

mailto: doesn't support attachments,但您可以通过多种方式实现类似的效果:

  1. Link到邮件正文中的文件

    您提到 link 需要授权,您可以生成持续 30 分钟(或 more/less)的临时 url 以供下载(然后用户可以自己附加文件)

  2. 自己发送邮件

    您的服务可以使用 Amazon SES, or Mailchimp 等内容向您的用户(或代表您的用户)发送电子邮件附件...

  3. 将您的 PDF 渲染为 HTML

    您似乎打算附加 PDF 文件。根据 PDF 文件的复杂程度,您可以尝试使用 one of many tools, such as pdf2htmlEX or Pandoc.

  4. 将 PDF 转换为电子邮件友好 HTML