微软退役SmtpClient的详细原因是什么?

Luk*_* Vo 5 .net networking smtp smtpclient

在.NET Framework 4.7 doc中,Microsoft标记为SmtpClient过时,原因如下:

SmtpClient及其网络类型设计不佳,我们强烈建议您使用https://github.com/jstedfast/MailKithttps://github.com/jstedfast/MimeKit代替

我很好奇,也没有这方面的专家.这个"设计不佳"究竟是什么MS必须推荐外部图书馆呢?对仍然使用它的项目有多糟糕?

GGO*_*GGO 3

SmtpClient不支持 DKIM(或 SPF)身份验证。它不会自然发送RSA密钥,并且一些邮件提供商将小于 1024 位的密钥视为垃圾邮件,例如gmailorange

请在此处检查“我从我的域发送的消息未经身份验证”段落。

我最近也更改了我的实现,我建议MailKit:代码定义几乎相同(允许您保留一个MailMessage对象),并且它工作得很好!

using (var client = new MailKit.Net.Smtp.SmtpClient())
{
      client.Connect(Host, Port, UseSsl);
      client.Authenticate(Credential.UserName, Credential.Password);
      client.Send(MimeMessage.CreateFromMailMessage(new MailMessage()));
      client.Disconnect(true);
}
Run Code Online (Sandbox Code Playgroud)