我正在从我的 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>