title: How can I send emails through SSL SMTP with the .NET Framework?
body: <p>Is there a way with the .NET Framework to send emails through an SSL SMTP server on port 465?</p>
  <p>The usual way:</p>
  <pre><code>System.Net.Mail.SmtpClient _SmtpServer = new System.Net.Mail.SmtpClient(&quot;tempurl.org&quot;);
  _SmtpServer.Port = 465;
  _SmtpServer.EnableSsl = true;
  _SmtpServer.Credentials = new System.Net.NetworkCredential(&quot;username&quot;, &quot;password&quot;);
  _SmtpServer.Timeout = 5000;
  _SmtpServer.UseDefaultCredentials = false;
  
  MailMessage mail = new MailMessage();
  mail.From = new MailAddress(from);
  mail.To.Add(to);
  mail.CC.Add(cc);
  mail.Subject = subject;
  mail.Body = content;
  mail.IsBodyHtml = useHtml;
  _SmtpServer.Send(mail);
  </code></pre>
  <p>times out:</p>
  <pre><code>System.Net Verbose: 0 : [1024] SmtpClient::.ctor(host=ssl0.ovh.net, port=465)
  System.Net Information: 0 : [1024] Associating SmtpClient#64923656 with SmtpTransport#44624228
  System.Net Verbose: 0 : [1024] Exiting SmtpClient::.ctor()  -&gt; SmtpClient#64923656
  System.Net Information: 0 : [1024] Associating MailMessage#17654054 with Message#52727599
  System.Net Verbose: 0 : [1024] SmtpClient#64923656::Send(MailMessage#17654054)
  System.Net Information: 0 : [1024] SmtpClient#64923656::Send(DeliveryMethod=Network)
  System.Net Information: 0 : [1024] Associating SmtpClient#64923656 with MailMessage#17654054
  System.Net Information: 0 : [1024] Associating SmtpTransport#44624228 with SmtpConnection#14347911
  System.Net Information: 0 : [1024] Associating SmtpConnection#14347911 with ServicePoint#51393439
  System.Net.Sockets Verbose: 0 : [1024] Socket#26756241::Socket(InterNetwork#2)
  System.Net.Sockets Verbose: 0 : [1024] Exiting Socket#26756241::Socket() 
  System.Net.Sockets Verbose: 0 : [1024] Socket#23264094::Socket(InterNetworkV6#23)
  System.Net.Sockets Verbose: 0 : [1024] Exiting Socket#23264094::Socket() 
  System.Net.Sockets Verbose: 0 : [1024] Socket#26756241::Connect(20:465#337754884)
  System.Net.Sockets Verbose: 0 : [1024] Exiting Socket#26756241::Connect() 
  System.Net.Sockets Verbose: 0 : [1024] Socket#23264094::Close()
  System.Net.Sockets Verbose: 0 : [1024] Socket#23264094::Dispose()
  System.Net.Sockets Verbose: 0 : [1024] Exiting Socket#23264094::Close() 
  System.Net Information: 0 : [1024] Associating SmtpConnection#14347911 with SmtpPooledStream#14303791
  System.Net.Sockets Verbose: 0 : [1024] Socket#26756241::Receive()
  System.Net.Sockets Verbose: 0 : [2404] Socket#26756241::Dispose()
  System.Net.Sockets Error: 0 : [1024] Exception in the Socket#26756241::Receive - A blocking operation was interrupted by a call to WSACancelBlockingCall
  System.Net.Sockets Verbose: 0 : [1024] Exiting Socket#26756241::Receive()   -&gt; 0#0
  System.Net Error: 0 : [1024] Exception in the SmtpClient#64923656::Send - Unable to read data from the transport connection: A blocking operation was interrupted by a call to WSACancelBlockingCall.
  System.Net Error: 0 : [1024]    at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
     at System.Net.DelegatedStream.Read(Byte[] buffer, Int32 offset, Int32 count)
     at System.Net.BufferedReadStream.Read(Byte[] buffer, Int32 offset, Int32 count)
     at System.Net.Mail.SmtpReplyReaderFactory.ReadLines(SmtpReplyReader caller, Boolean oneLine)
     at System.Net.Mail.SmtpReplyReaderFactory.ReadLine(SmtpReplyReader caller)
     at System.Net.Mail.SmtpConnection.GetConnection(String host, Int32 port)
     at System.Net.Mail.SmtpTransport.GetConnection(String host, Int32 port)
     at System.Net.Mail.SmtpClient.GetConnection()
     at System.Net.Mail.SmtpClient.Send(MailMessage message)
  System.Net Verbose: 0 : [1024] Exiting SmtpClient#64923656::Send() 
  System.Net Information: 0 : [1024] Associating MailMessage#49584532 with Message#19699911
  </code></pre>
  <p>I googled around and found that <code>System.Net.Mail</code> supports connections on port 587 (default port for Explicit SSL that starts unencrypted then issues a <code>STARTTLS</code> then switches to an Encrypted connection: RFC 2228), but doesn't support Implicit SSL (entire connection is wrapped in an SSL layer) ...</p>