How to enable SSL for SmtpClient in Web.config How to enable SSL for SmtpClient in Web.config asp.net asp.net

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"