【问题标题】:The "MailTo" ...setting a proper name on the Recipient“MailTo” ...在收件人上设置正确的名称
【发布时间】:2011-12-30 04:10:13
【问题描述】:

在 HTML 中我想使用“mailto”标签时如何为收件人设置正确的名称。

类似:

mailto:"John Wayne(jw@email.com)?subject..

我如何做到这一点?

【问题讨论】:

    标签: html


    【解决方案1】:

    试试这个:mailto:%22John%20Wayne%22%3cjw@email.com%3e?subject..

    将名称包含在%22 中,电子邮件前面有%3c,后面有%3e,空格是%20

    这将输出:"John Wayne"<jw@email.com>

    完整的 URL 编码列表:http://www.w3schools.com/tags/ref_urlencode.asp

    【讨论】:

    • 太好了,感谢您的参考。顺便说一句:显示名称周围的 %22 不是必需的。
    • 这不符合标准。
    • 不适用于 Windows 10 中的邮件应用程序。使用 mailto:John Wayne<jw@email.com>(无论是否对名字和姓氏之间的空格进行编码)都可以。
    • @Aaron 我会忽略 Windows 10 Mail 应用程序的任何结果 - 它与 IE5/6/7 一样远离标准 - 它甚至不尊重 Reply-To 标头字段.
    • 公平通话@Jake。
    【解决方案2】:

    正如其他答案中提到的,RFC 2368 允许完整的mailbox 语法,可以是name-addrdisplay-name 加上angle-addr)形式(RFC 5322)。不幸的是,它被RFC 6068 淘汰了,它只允许addr-spec 形式。但是,这两个规范都允许省略 URI 权限(通常是目标地址)并指定完整的标头字段(包括To:)作为查询参数。因此,mailto:?to=John%20Wayne%20%3cjw@email.com%3e 是有效的。

    【讨论】:

    • 对我来说mailto:?to=John%20Wayne%20%3cjw@email.com%3e 确实适用于 ubuntu+evince+thunderbird,但不适用于 windows7+firefox+outlook。但是mailto:John%20Wayne%20%3cjw@email.com%3e 两者都适用。
    【解决方案3】:

    mailto: 链接的原始标准 RFC 1738 是这样说的:

    mailto URL 采用以下形式:

    mailto:<rfc822-addr-spec>
    

    其中&lt;rfc822-addr-spec&gt; 是(an 的编码)addr-spec,如 在 RFC 822 [6] 中指定。

    根据该定义,不能包含专有名称。

    但 RFC 1738 的 mailto: 部分已被 RFC 2368 取代,这允许(除其他外,包括预定义的主题行)RFC 822 mailbox 规范,其中包括一个专有名称。

    [2016-05-31] 正如 David Balažic 在评论中指出的那样,RFC 2368 又被 RFC 6068 淘汰。来自第 9 节,“RFC 2368 的主要变化”:

    RFC 2368的主要变化如下:

    • 将语法从 RFC 2822 &lt;mailbox&gt; 更改为 [RFC5322] &lt;addr-spec&gt;

    在实际使用中,mailto:Fred Foo&lt;foo@example.com&gt; 好像还是可以的,但是官方不支持;您可能还需要对空格进行编码,mailto:Fred%20Foo&lt;foo@example.com&gt;,和/或将名称放在引号中,mailto:"Fred Foo"&lt;foo@example.com&gt;

    【讨论】:

    • 请注意,RFC 2368 已被 RFC 6068 废弃,它定义了 addr-spec = local-part "@" domain ,因此似乎不允许显示名称它。
    【解决方案4】:

    对 uri 进行编码并将其分配给 mailto

    您的电子邮件和显示名称也需要形成为John Wayne &lt;jw@email.com&gt; or jw@email.com (John Wayne)

    确保您对这些内容进行了 encodeURI。否则它将无法在不同的邮件客户端中正常工作。

    【讨论】:

    • 我认为 encodeURI() 可以解决这个目的。而不是添加 %22 或任何字符来添加空格或括号。我不知道为什么它也被否决了。
    【解决方案5】:

    这完全取决于您使用的邮件客户端。我很久以前在 Outlook Express 上尝试过,没关系。但是多年以后,我用Dream Mail,它只会带入邮件地址部分,而忽略了姓名部分。

    【讨论】:

      【解决方案6】:
        <a href="mailto:lala lala2(astark1@unl.edu)?subject=MailTo Comments&cc=ASTARK1@UNL.EDU&bcc=id@internet.node">ddddd</a>
      

      记得只使用一个吗? (问号),当提供超出电子邮件地址的多个条目时

      【讨论】:

      • 不确定它是否真的解决了我原来的问题 :-) TO 部分的收件人姓名在哪里?
      • @SFDeveloper:我相信“lala lala2”是这个例子中收件人的名字。
      【解决方案7】:

      我试过了

      mailto:John Wayne<jw@email.com>?subject...
      

      它似乎有效。

      【讨论】:

      • 你在哪里试过这个?它绝对对我不起作用
      【解决方案8】:

      您不能在 mailto 链接上设置收据名称

      【讨论】:

      • 抱歉最后的评论。我是个没有正确阅读问题的笨蛋。
      • 是的,你可以;查看其他答案。
      猜你喜欢
      • 2013-06-09
      • 2010-12-18
      • 1970-01-01
      • 2010-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-06
      • 2011-10-15
      相关资源
      最近更新 更多