我们向使用我们内部网的业务合作伙伴发送密码重置电子邮件。电子邮件正文包含一个超链接:
`http://www.ourdomain.com/ResetPassword.aspx?token=....`
但是一些收到这些电子邮件的人说域名中有一个额外的点:
`http://www.ourdomain..com/ResetPassword.aspx?token=....`
我看不出在我编写的程序中会发生这种情况。我将基本网址存储在 web.config 中:
`http://www.ourdomain.com`
并附加 ASPX 页的名称并将令牌追加到其中。
是否有任何企业防病毒程序故意破坏电子邮件正文中发现的超链接,使它们无效,因此无法点击?
似乎是按照引用可打印编码的规范。 碰巧消息中的文本长度在.com处断开到新行(也许是 72 个字符? 请通过向自己发送消息并分析消息的引用可打印来源来验证是否是这种情况。
System.Net.Mail正在创建无效的电子邮件和eml文件?在主机名中插入额外的点
解决方案是,如果某些电子邮件程序无法正确解释规范,则不使用带引号的可打印编码。
plainText.TransferEncoding = System.Net.Mime.TransferEncoding.SevenBit;
//or base64