HTML 邮件 link 中的电子邮件分隔符在邮件客户端之间是不同的

Email separating character in HTML mail link is different across mail clients

我正在通过 mailto: link 在 HTML 中预填充电子邮件的 'Cc' 和 'To' 字段。当我用逗号分隔 Cc 字段中的电子邮件时,它在 Gmail 客户端中有效,但在 Outlook 中无效。当我将其切换为分号时,情况正好相反。

我应该使用其他分隔符吗?

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

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

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

Even though RFC explicitly recommends a comma, Microsoft Outlook will use the "list separator character" defined in the regional settings. Your mailto links may not work correctly for your Windows + Outlook users whose systems are configured with a different list separator such as semicolons. Outlook will simply refuse to split the e-mail addresses with commas.

我知道这不是你想听到的答案。您可以将 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