How to enable SSL for SmtpClient in Web.config
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.
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>