How to enable SSL for SmtpClient in Web.config
For .NET 3 and earlier: You can't. You have to manage it by hand.
For more information you can see 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/.
For .NET 4: You can.
See http://theoldsewingfactory.com/2011/01/06/enable-ssl-in-web-config-for-smtpclient/
<configuration> <system.net> <mailSettings> <smtp deliveryMethod=”network”> <network host="localhost" port="25" enableSsl="true" defaultCredentials="true" /> </smtp> </mailSettings> </system.net></configuration>
I have a dirty workaround (until .NET 4.0 comes out). Instead of changin my code it relies on the used port to determine if SSL is required or not.
var client = new SmtpClient();client.EnableSsl = client.Port == 587 || client.Port == 465;// This could also work//client.EnableSsl = client.Port != 25;
I said it was a dirty hack, but it working fine for the different configurations that we encounter.
this works for me in .net 4
E.G. in web.config
network host="somesmtpserver" userName="do_not_reply@yourserver.com" password="whatever" port="25" enableSsl="true"