HTML 邮件链接中的电子邮件分隔字符在不同的邮件客户端中是不同的

Pat*_*ors 2 html email separator

我通过 HTML 中的链接预先填充电子邮件的“抄送”和“收件人”字段mailto:。当我用逗号分隔抄送字段中的电子邮件时,它在 Gmail 客户端中有效,但在 Outlook 中无效。当我将其切换为分号时,情况恰恰相反。

我应该使用不同的分隔字符吗?

fre*_*old 5

根据RFC 6068规范,逗号 ( ,) 是正确的字符:

to = addr-spec *("," addr-spec )

但是,正如Stack Overflow 答案中所述,某些用户可能将 Outlook 配置为使用分号,这会出现问题:

尽管 RFC 明确建议使用逗号,但 Microsoft Outlook 将使用区域设置中定义的“列表分隔符”。对于系统配置了不同列表分隔符(例如分号)的 Windows + Outlook 用户,您的 mailto 链接可能无法正常工作。Outlook 将简单地拒绝用逗号分隔电子邮件地址。

我知道这不是你想听到的答案。您可以将 Outlook 配置为查找逗号而不是分号,但这是必须为每个用户执行的操作 - 而不是您可以在服务器端或从应用程序执行的操作。您也许可以编写一个检查代码来查看 Outlook 是否被用作客户端,但除此之外,您的选择是有限的。

资料来源:

更新:

正如 @Chris 提到的,RFC 5322还将逗号指定为收件人之间的“官方”分隔符:

to = "To:" address-list CRLF
cc = "Cc:" address-list CRLF
bcc = "Bcc:" [address-list / CFWS] CRLF
address-list = (address *("," address)) / obs-addr-list