有没有办法从web.config设置EnableSSL?
我可以在代码中设置此属性,但这对于简单邮件Web事件和使用默认Smtp服务器的其他类不起作用.有任何想法吗?
对于.NET 3及更早版本:您不能.你必须手工管理它.
有关详细信息,请参阅https://blogs.msdn.microsoft.com/vikas/2008/04/29/bug-asp-net-2-0-passwordrecovery-web-control-cannot-send-emails-to- ssl-enabled-smtp-servers /.
对于.NET 4:你可以.
见http://theoldsewingfactory.com/2011/01/06/enable-ssl-in-web-config-for-smtpclient/
我有一个肮脏的解决方法(直到.NET 4.0出来).而不是改变我的代码,它依赖于使用的端口来确定是否需要SSL.
var client = new SmtpClient(); client.EnableSsl = client.Port == 587 || client.Port == 465; // This could also work //client.EnableSsl = client.Port != 25;
我说这是一个肮脏的黑客,但它适用于我们遇到的不同配置.
这对我来说很有用.net 4
在web.config中的EG
network host="somesmtpserver" userName="do_not_reply@yourserver.com" password="whatever" port="25" enableSsl="true"