You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

引用类发送邮件时出现System.Net.Security程序集错误的解决咨询

我来帮你分析这个邮件发送时遇到的System.Net.Security, Version=4.0.0.0错误问题,结合你的开发环境(VS2017 15.6.6 + .NET 4.7.02556 + MailKit 2.0.3),具体原因和解决办法如下:

错误原因分析
  • 程序集版本冲突:MailKit 2.x版本对.NET框架的依赖和你项目中实际引用的System.Net.Security版本不匹配,可能是项目里残留了旧版本引用,或者全局程序集缓存(GAC)里的版本干扰了加载。
  • NuGet依赖解析异常:VS2017 15.6.6的NuGet管理器可能没有正确处理MailKit的依赖链,导致System.Net.Security程序集缺失或引用错误。
  • SSL/TLS兼容性问题:你测试的SMTP服务器大多要求TLS 1.2及以上版本,但.NET 4.7默认的安全协议设置可能没有启用高版本TLS,间接触发了安全层的程序集调用错误。
具体解决办法

1. 修复NuGet依赖并添加程序集绑定重定向

  • 先卸载项目中的MailKit和MimeKit,再重新安装兼容版本:如果2.0.3还是有问题,可以尝试降级到MailKit 1.18.x版本,它对旧版VS和.NET 4.7的兼容性更稳定。
  • 在项目的App.config或Web.config中添加绑定重定向,强制指定System.Net.Security的版本:
<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Net.Security" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

(如果你的.NET 4.7对应的System.Net.Security是更高版本,可在项目引用里查看实际版本号并修改newVersion)

2. 强制启用高版本TLS

在发送邮件的代码开头添加以下代码,确保使用兼容SMTP服务器的安全协议:

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12 | System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls;

3. 清理项目并验证框架设置

  • 右键项目→属性→应用程序,确认目标框架是.NET Framework 4.7(不要选客户端配置文件)。
  • 执行清理解决方案,删除项目目录下的bin和obj文件夹,再重新生成项目,清除旧的程序集缓存。

4. 优化SMTP服务器配置

针对你测试的服务器,确保代码里的配置正确:

  • Office 365/smtp.office365.com:端口用587,加密方式选SecureSocketOptions.StartTls;
  • Gmail:开启App密码(若启用两步验证)或低安全性应用访问,端口用587或465;
  • 示例代码片段:
using (var client = new SmtpClient())
{
    client.Connect("smtp.office365.com", 587, MailKit.Security.SecureSocketOptions.StartTls);
    client.Authenticate("你的邮箱地址", "你的密码/App密码");
    client.Send(message);
    client.Disconnect(true);
}

内容的提问来源于stack exchange,提问作者Bonus9500

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:31:34