2013-07-19 166 views
1

我从我的Web应用程序发送一封电子邮件,但不幸的是,它在Outlook.com等一些电子邮件客户端中被破坏。该URL使用HttpUtil.UrlEncode进行URL编码,并且在桌面Outlook或Gmail中显示正常,但在Outlook.com中,链接部分中的Unicode编码字符将转换回普通字符(: - 等)。某些电子邮件客户端中的HTML电子邮件中的链接

<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>

回答

1

也许尝试以下方法:

  • 我看到你没有关闭锚标签。
  • 如果Outlook剥离的URL,你应该尝试使用较短的网址(使用url shortner service
+0

我认为,锚被关闭。使用URL缩短器已经超越了我的想法,但我更愿意使用该链接的解决方案。是否真的不可能确保链接在所有电子邮件客户端上正确解码和显示? –

+0

如果在将电子邮件存储在数据库中时对url/html进行了编码,则在进入演示文稿时需要对其进行解码。 – dhruvpatel

+0

在电子邮件模板上工作时,我开始知道**电子邮件客户端有自己的引擎,它会修改您的电子邮件内容**(如果您检查代码,您将看到每个电子邮件客户端的html标记与你提供)。我认为gmail,yahoo和hotmail在接受电子邮件内容方面更加开放,而且Outlook的限制性更强(特别是,您不能在Outlook中加载背景图片,例如在其他电子邮件客户端中)。 – dhruvpatel

相关问题