如果点出现在MIME编码行的开头(例如test.com有时显示为test..com),.NET的SmtpClient似乎正在创建主机名中带有额外点的电子邮件.示例代码:
[TestMethod]
public void TestEmailIssue()
{
var mail = new System.Net.Mail.MailMessage();
var smtpClient = new System.Net.Mail.SmtpClient();
mail.To.Add("Test@test.com");
mail.Subject = "Test";
mail.From = new System.Net.Mail.MailAddress("test@test.com");
mail.Body = "Hello this is a short test of the issue:"
+" <a href='https://test.com/'>https://test.com/</a>: ";
smtpClient.PickupDirectoryLocation = "C:\\temp\\";
smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.SpecifiedPickupDirectory;
smtpClient.Send(mail);
}
Run Code Online (Sandbox Code Playgroud)
这会创建一个如下所示的.eml文件:
X-Sender:test@test.com
X-Receiver:Test@test.com
MIME版本:1.0
来自:test@test.com
致:Test@test.com
日期:2011年7月6日15:55:28 -0400
主题:测试
内容类型:text/plain; 字符集= US-ASCII
Content-Transfer-Encoding:quoted-printable
您好,这是对该问题的简短测试:https:// test =
..com /'> https://test.com/:= 20
当发送文件,或开口在Outlook(或任何其他程序),双点显示(即test..com).请注意,如果我删除了额外的空格(在"是"中),则test.com会正确显示,因为该点不再出现在行的开头.
这在尝试发送网站地址时会出现问题,我们会收到来自客户的电话,说他们无法点击我们的链接.
还有其他人经历过这个吗?除了编写自己的编码之外,我们如何解决这个问题呢?