【问题标题】:Outlook handling of quoted url parameters in mailto linkOutlook 处理 mailto 链接中引用的 url 参数
【发布时间】:2012-05-22 04:17:50
【问题描述】:

我正在尝试使用 html 链接填充 mailto 链接的正文。目标浏览器为 IE 7+,邮件客户端为 Outlook 2007+。在我提出问题之前,我要承认 body 参数是用于短文本消息的,如下所示:

https://stackoverflow.com/a/4304779/573083

并在此处详细说明:

特殊的“body”表示关联的是 信息。 “body”字段值旨在包含以下内容 消息的第一个文本/纯正文部分。 “身体”伪 header 字段主要用于生成短文本 用于自动处理的消息(例如“订阅”消息 邮件列表),不适用于一般 MIME 正文。除了编码 基于 UTF-8 和百分比编码的字符数,无需额外 编码(例如base64或quoted-printable;参见[RFC2045])是 用于“body”字段值。因此,标题字段 与消息编码(例如,Content-Transfer-Encoding)相关的 'mailto' URI 无关紧要,必须被忽略。 “身体”伪 标头字段名称已在 IANA 注册此特殊 目的(参见第 8.2 节)。

话虽如此,SO 上有许多线程在正文标签中插入链接取得了不同程度的成功。例如:https://stackoverflow.com/a/1455881/573083https://stackoverflow.com/a/9138245/573083

我的问题是类似的,但它特别是与嵌入链接的前景渲染引用参数。我目前有以下几乎可以工作:

<a href="mailto:someaddress@somedomain.com?subject=This is a subject&body=http://someserver.somedomain/somepage.aspx?id=1234%26somekey=%22somevalue%22">A link</a>

部分链接正确显示在 Outlook 正文中,但 Outlook 未在链接中包含最终引用的 url 参数(“somevalue”); ="somevalue" 只是显示为纯文本。查看电子邮件消息的来源显示 Outlook 正在关闭封闭的 &lt;a&gt; 标记,因为它将 %22 解释为链接的结尾。我试图用 %2f, /, ' 来逃避 %22 - 无济于事。我相信我需要正确的 Outlook 顺序才能理解 %22 应该包含在链接中,而不是作为封闭链接的关闭。

任何帮助将不胜感激。

【问题讨论】:

    标签: outlook url-encoding mailto


    【解决方案1】:

    我会将链接放在“”中。

    %20 = space
    
    %0D = new line
    
    %3C = "<"
    
    %3E = ">"
    

    <html>
    <body>hi
     <a href="mailto:someaddress@somedomain.com?subject=This is a subject&body=Hi,%0DThis%20is%20a%20body%0DAlso%20this%20is%20a%20link%20%3Chttp%3A%2F%2Fsomeserver.somedomain%2Fsomepage.aspx%3Fid%3D1234%26somekey%3D%22somevalue%22%3E%20have%20fun.">A link</a></body>
    
    </html>

    【讨论】:

      【解决方案2】:

      根据? 判断,您还没有对body 组件进行编码。

      > encodeURIComponent("http://someserver.somedomain/somepage.aspx?id=1234%26somekey=%22somevalue%22") 
      "http%3A%2F%2Fsomeserver.somedomain%2Fsomepage.aspx%3Fid%3D1234%2526somekey%3D%2522somevalue%2522" 
      

      所以代码应该是:

      <a href="mailto:someaddress@somedomain.com?subject=This is a subject&body=http%3A%2F%2Fsomeserver.somedomain%2Fsomepage.aspx%3Fid%3D1234%2526somekey%3D%2522somevalue%2522">A link</a>
      

      或者更有可能:

      <a href="mailto:someaddress@somedomain.com?subject=This is a subject&body=http%3A%2F%2Fsomeserver.somedomain%2Fsomepage.aspx%3Fid%3D1234%26somekey%3D%2522somevalue%2522">A link</a>
      

      【讨论】:

      • 对我来说,这个答案中一个非常有趣和有用的方面是,您不仅要编码 & 符号,还要编码它前面的百分号,这会将其转换为 %2526。非常感谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-09
      • 1970-01-01
      • 1970-01-01
      • 2020-10-08
      • 1970-01-01
      • 1970-01-01
      • 2011-01-16
      相关资源
      最近更新 更多