相关疑难解决方法(0)

System.Net.Mail创建无效的电子邮件和eml文件?在主机名中插入额外的点

如果点出现在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会正确显示,因为该点不再出现在行的开头.

这在尝试发送网站地址时会出现问题,我们会收到来自客户的电话,说他们无法点击我们的链接.

还有其他人经历过这个吗?除了编写自己的编码之外,我们如何解决这个问题呢?

.net c# email smtpclient

29
推荐指数
1
解决办法
6692
查看次数

标签 统计

.net ×1

c# ×1

email ×1

smtpclient ×1