Microsoft 停用 SmtpClient 的原因可能是什么?
What could be reasons that Microsoft retired SmtpClient?
在 .NET Framework 4.7 文档中, 原因如下:
SmtpClient and its network of types are poorly designed, we strongly
recommend you use https://github.com/jstedfast/MailKit and
https://github.com/jstedfast/MimeKit instead
我很好奇,也不是这方面的专家。 MS 不得不推荐外部图书馆的这种“设计不佳”可能是什么?对于仍在使用它的项目来说有多糟糕?
SmtpClient
不支持 DKIM(或 SPF)认证。它不会自然发送 RSA
密钥,一些邮件提供商将小于 1024 位的密钥视为垃圾邮件,如 gmail
或 orange
.
检查 "A message I sent from my domain wasn't authenticated" 段 here。
我最近也更改了我的实现,我建议 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);
}
在 .NET Framework 4.7 文档中,
SmtpClient and its network of types are poorly designed, we strongly recommend you use https://github.com/jstedfast/MailKit and https://github.com/jstedfast/MimeKit instead
我很好奇,也不是这方面的专家。 MS 不得不推荐外部图书馆的这种“设计不佳”可能是什么?对于仍在使用它的项目来说有多糟糕?
SmtpClient
不支持 DKIM(或 SPF)认证。它不会自然发送 RSA
密钥,一些邮件提供商将小于 1024 位的密钥视为垃圾邮件,如 gmail
或 orange
.
检查 "A message I sent from my domain wasn't authenticated" 段 here。
我最近也更改了我的实现,我建议 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);
}