我们向使用Intranet的商业伙伴发送密码重置电子邮件。电子邮件正文包含一个超链接:
`http://www.ourdomain.com/ResetPassword.aspx?token=....`
但是收到这些电子邮件的一些人说域名中有一个额外的点:
`http://www.ourdomain..com/ResetPassword.aspx?token=....`
我没有看到我编写的程序中可能发生的情况。我将基本URL存储在web.config中:
`http://www.ourdomain.com`
并附上aspx页面的名称并将令牌附加到它。
是否有任何公司反病毒程序在电子邮件正文中发现故意 mangle 超链接,使其无效且无法点击?
答案 0 :(得分:1)
这似乎符合引用可打印编码的规范。只是碰巧消息中的文本长度在.com中突破到一个新行(可能是72个字符?)。请通过向您发送消息并分析引用的可打印消息来源来验证是否是这种情况。
System.Net.Mail creating invalid emails and eml files? Inserting extra dots in host names
如果某些电子邮件程序无法正确解释规范,解决方案是不使用quoted-printable编码。
plainText.TransferEncoding = System.Net.Mime.TransferEncoding.SevenBit;
//or base64