【问题标题】:email's contains = symbol is replaced with some characters in gmail/outlook电子邮件的 contains = 符号被替换为 gmail/outlook 中的某些字符
【发布时间】:2011-04-07 09:52:14
【问题描述】:

我正在发送 html 格式的自动邮件。我在邮件中提供了一个指向带有等号(=)符号的 url 的链接。例如:http://mail.com?hello=10_world 此 url 替换为 http://mail.com?hello%10_world,即 =symbol 在 gmail/outlook 中替换为 % 符号。

我错过了什么吗???

【问题讨论】:

  • 我不确定,但我相信您电子邮件中的 URL 是经过 URL 编码的。尝试在 c# 中使用 URLEncode() 或 URLDecode() 方法。我不会将此作为答案,因为这只是猜测。

标签: c# asp.net outlook gmail


【解决方案1】:

邮件使用quoted-printable,所以=10代表字符代码为10的字符,即换行(LF)。当在 URL 中找到换行符时,必须对其进行 URL 编码才能从中创建链接,因此使用序列 %10 对其进行编码。

所以,不是=%取代,而是=10被解码为LF,然后编码为%10

要将= 字符放在引用的可打印中,您需要将其转义为=3D

【讨论】:

  • 现在我正在使用 HttpUtility.UrlEncode 对该网址进行编码,现在它工作正常.. 但不知道其他东西是否会破坏这个。
猜你喜欢
  • 1970-01-01
  • 2017-12-07
  • 2017-12-11
  • 2012-10-15
  • 2018-04-13
  • 1970-01-01
  • 2015-06-18
  • 2016-03-30
  • 2015-03-22
相关资源
最近更新 更多