我正在使用C#代码通过邮件向我的客户发送账户激活链接。我正在使用亚马逊SES邮件服务。我的一些客户报告说,他们的链接不工作。我发现双点添加到链接。
链接1:
https://www.company.com/account/verify?email=customer.name@gmail.com&hashtoken=5574asfasfafb37d09aasdfa097
链接2:
https://www.company.com/account/verify?email=customer.name@gmail.com&hashtoken=5574asfasfafb37d09aasdfa097
链接3:
https://www.company.com/account/verify?email=customer..name@gmail.com&hashtoken=5574asfasfafb37d09aasdfa097
这些是我每次客户报告时发现的双点。当我使用我的localhost进行检查时,一切工作正常,链接生成正确。问题不是为所有客户生成的,而是随机生成的。
注意:我将在邮件模板中添加原始url。我不是在编码。我只编码邮件ID。
string activationLink = ConfigurationManager.AppSettings["hostUrl"].ToString()+ "/account/verify?email=" + HttpUtility.UrlEncode(email) + "&hashtoken=" + hashCode;
提前致谢
迪纳斯。
可能是内容的编码不合适。。。
尝试:
MailMessage.BodyEncoding=System.Text.Encoding.UTF8
有关详细信息,请参阅:
https://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage.BodyEncoding(V=VS.110).aspx
我也发现了这个虫子。不幸的是,我没有找到解决方案,但我注意到它是由AlternateView.CreateAlternateViewFromString过程和QuotedPrintable编码引起的。此外,当行从点开始时,会添加额外的点。
我的解决办法是:
>
发送前将邮件正文保存到文件中
替换。。敬。在以。。开头的插队处。
将文件移动到拾取文件夹