【问题标题】:Hotmail can not properly read email with ! in urlHotmail 无法正常阅读邮件!在网址中
【发布时间】:2014-11-10 23:30:36
【问题描述】:

我有一个单页应用程序,其 URL 类似于 http://example.com/#!something/something/。问题是当我发送包含指向此类 url 链接的电子邮件时,hotmail 用户会误会他们(我只在 hotmail 中注意到它,其他人都很好)。

! 被编码为 %21,这使得 url 错误:http://example.com/#%21something/something/

除了重写我的应用程序之外可以做什么的任何想法 :-)。我正在使用swiftmailer 发送电子邮件,但我非常怀疑这是否相关。

【问题讨论】:

    标签: email url hotmail hashbang


    【解决方案1】:

    根据 RFC3986,"!" 字符在 URI 的片段 (#...) 组件中有效,因此不应使用百分比编码对其进行编码。从这个意义上说,这似乎是一个 Outlook.com 错误。

    一种解决方法是使用纯文本电子邮件:根据我的测试,outlook.com 仅对! 的 HTML 电子邮件链接进行编码,并且纯文本电子邮件是安全的。

    然而,真正的解决方案是在客户端代码中进行自己的规范化。 URL 破解和规范化是一项非常棘手的业务,因此我预计其他电子邮件客户端也会出现问题。对 window.location.hash 运行 JavaScript decodeUriComponent() 应该会为您提供未编码的 "#!/something/something" 版本,无论感叹号是否已编码。我了解这需要修改您想要避免的 Web 应用程序,但据我所知,这是要走的路。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-10
      • 1970-01-01
      • 2011-02-24
      • 2014-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多