代码之家  ›  专栏  ›  技术社区  ›  Luke Vo

微软退出smtpclient的详细原因?[关闭]

  •  5
  • Luke Vo  · 技术社区  · 7 年前

    在.NET框架4.7文档中, Microsoft marked SmtpClient obsolete 原因如下:

    smtpclient及其类型的网络设计很差,我们强烈要求 建议您使用 https://github.com/jstedfast/MailKit https://github.com/jstedfast/MimeKit 相反

    我很好奇,在这方面没有专家。到底是什么“糟糕的设计”让微软不得不推荐一个外部图书馆?对于仍然使用它的项目来说有多糟糕?

    1 回复  |  直到 7 年前
        1
  •  3
  •   GGO    7 年前

    SmtpClient 不支持DKIM(或SPF)身份验证。它不会自然地发送 RSA 密钥和一些邮件提供商认为小于1024位的密钥类似于垃圾邮件 gmail orange .

    检查“我从我的域发送的消息未通过身份验证”段落 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);
    }