【问题标题】:Gmail strips body out of mailto linksGmail 从 mailto 链接中删除正文
【发布时间】:2022-04-18 20:48:10
【问题描述】:

我一直在我支持的网站上看到此问题,并已确认其他地方也是如此。

当使用 mailto 链接共享 URL 时,我发现一些客户可以在电子邮件中显示 mailto 链接中的 body 字段,而 Gmail 会将其删除。

我在这里看到了一些相关问题,但没有人建议修复或解决方法。

我还看到有人提到 body 字段是非标准的,但似乎需要在规范中尊重它。

https://www.rfc-editor.org/rfc/rfc6068#page-7

“mailto”URI 的创建者不能指望 URI 的解析器 要了解的不仅仅是“主题”标题​​字段和“正文”。 将“mailto”URI 解析为邮件消息的客户端必须能够 使用
正确创建符合 [RFC5322] 的邮件消息 “主题”标题​​字段和“正文”。

Gmail 是否因此不合规?


为了演示我看到的行为,将 Gmail 作为您的默认电子邮件客户端,请将以下内容粘贴到您的浏览器网址栏中:mailto:?subject=qux&body=xyzzy

如果您的体验与我的一致,您的 Gmail 邮件中将不会有正文,而只会有一个主题。经过检查,您可能会看到 Gmail webapp 的 url 栏显示如下内容:https://mail.google.com/mail/u/0/?view=cm&fs=1&tf=1&source=mailto&su=quxsu 代表原始 mailto url 中的 subject 字段,果然,没有字段代表 @ 987654331@.

现在,更改您的默认电子邮件客户端(我尝试使用 Mail macOS 应用程序),您将看到主题和正文都已填充。

有没有人幸运地在 Gmail 中使用了指定的行为?

【问题讨论】:

  • 我发现你可以拥有主体或主体,但不能同时拥有;如果你把正文放在查询字符串的前面,你会得到一个正文但没有主题。

标签: email gmail mailto


【解决方案1】:

Gmail 会省略第一个由 未编码 符号分隔的查询字符串参数之后的所有查询字符串参数。所以如果你把?subject放在前面,你只会得到主题;如果你把?body放在第一位,你只会得到身体。我改变了这个:

<a href="mailto:?body=https%3A%2F%2Fexample.com&amp;subject=Testing">

对此,与符号编码为%26

<a href="mailto:?body=https%3A%2F%2Fexample.com%26subject=Testing">

...它在 Gmail 中有效,但 Mail.app 将整个查询字符串作为电子邮件正文。但正如我所说,Gmail 忽略了第一个未编码的 & 符号之后的所有内容。所以我用未编码的 & 符号重复了正文和主题,这似乎在任何地方都有效:

<a href="mailto:?body=https%3A%2F%2Fexample.com%26subject=Testing&amp;body=https%3A%2F%2Fexample.com&amp;subject=Testing">

【讨论】:

    猜你喜欢
    • 2011-06-10
    • 2011-12-14
    • 2014-12-27
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    相关资源
    最近更新 更多