【问题标题】:Links in HTML email broken in some email clientsHTML 电子邮件中的链接在某些电子邮件客户端中损坏
【发布时间】:2013-07-19 17:41:10
【问题描述】:

我正在从我的 Web 应用程序发送一封电子邮件,但不幸的是,它在一些电子邮件客户端(如 Outlook.com)中出现故障。该 url 是使用 HttpUtil.UrlEncode 编码的 URL,在桌面 Outlook 或 gmail 中显示良好,但在 outlook.com 中,链接部分中的 unicode 编码字符被转换回普通字符(: - 等)。

<a href="http://1.1.1.1/fulfillment/URLLink.acsm?action=enterorder&ordersource=AAAA&orderid=AAAA&resid=urn%3auuid%3a52345ffd-d3a4-2452-fas3-234234df3fda&gbauthdate=07%2f15%2f2013+09%3a46&dateval=1373892365&gblver=4&auth=52345ffdd3a4a452fad3234234df3fda4324ad6d">http://1.1.1.1/fulfillment/URLLink.acsm?action=enterorder&ordersource=AAAA&orderid=AAAA&resid=urn%3auuid%3a52345ffd-d3a4-2452-fas3-234234df3fda&gbauthdate=07%2f15%2f2013+09%3a46&dateval=1373892365&gblver=4&auth=52345ffdd3a4a452fad3234234df3fda4324ad6d</a>

当您单击outlook.com 中的链接时,它会打开:

http://1.1.1.1/fulfillment/URLLink.acsm?action=enterorder&ordersource=AAAA&orderid=AAAA&resid=urn:uuid:52345ffd-d3a4-2452-fas3-234234df3fda&gbauthdate=07/19/2013+17:11&dateval=1374264715&gblver=4&auth=52345ffdd3a4a452fad3234234df3fda4324ad6d

我的想法不多了。有人吗?

更多信息:邮件在邮件客户端中接收时采用 base64 编码:

Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64

里面的HTML头是:

<!DOCTYPE HTML PUBLIC"-//IETF//DTD HTML//EN"><html><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"></head>

【问题讨论】:

    标签: email url encoding urlencode outlook.com


    【解决方案1】:

    不妨试试以下方法:

    • 我看到你没有关闭锚标签。
    • 如果 Outlook 正在剥离 url,您应该尝试使用较短的 url(使用 url shortner service)

    【讨论】:

    • 我认为锚是关闭的。我已经想到使用 url 缩短器,但我更喜欢按原样使用链接的解决方案。确保链接在所有电子邮件客户端中正确解码和显示真的不可能吗?
    • 如果将邮件存入数据库时​​url/html被编码,则在进入展示时需要解码。
    • 在处理电子邮件模板时,我了解到电子邮件客户端有自己的引擎,它会修改您的电子邮件内容(如果您检查代码,您会看到每个电子邮件客户端的 html 标记与您提供的不同)。我认为 gmail、yahoo 和 hotmail 在接受您的电子邮件内容方面更加开放,而 Outlook 的限制更为严格(特别是,您不能在 Outlook 中加载背景图像,例如在其他电子邮件客户端中也可以。)
    猜你喜欢
    • 2015-09-21
    • 1970-01-01
    • 2010-11-13
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多