Outlook VSTO加载项发送SMTP邮件失败:SSPI错误及解决方法
解决Outlook VSTO加载项调用System.Net.Mail发送邮件时的"A call to SSPI failed"错误
我之前碰到过完全一致的情况:用System.Net.Mail开发的SendEmail方法在普通C#项目里运行毫无问题,但放到Outlook VSTO加载项里调用就抛出**"A call to SSPI failed"错误,内部错误信息显示"Function not supported"**。更奇怪的是,相同的邮件内容在普通C#环境里能正常发送,唯独在VSTO加载项里不行。
问题本质
这其实是因为Outlook VSTO加载项的运行环境默认使用的TLS协议版本和邮件服务器要求的不匹配,而普通C#项目的默认TLS配置刚好能满足服务器要求。
修复方案
在你的SendEmail方法开头加上一行强制指定TLS 1.2协议的代码即可解决问题:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
添加这行代码后,邮件就能正常发送了,我亲测有效。
内容的提问来源于stack exchange,提问作者MarcG
相关产品推荐
相关产品推荐

