title: Are the SmtpClient.SendMailAsync methods Thread Safe?
body: <p>The <a href="http://msdn.microsoft.com/en-us/library/4971yhhc.aspx" rel="noreferrer">SmtpClient Class</a> states that instance members are not thread safe.  This can be seen if concurrent calls are made to <a href="http://msdn.microsoft.com/en-us/library/swas0fwc.aspx" rel="noreferrer">Send</a> or <a href="http://msdn.microsoft.com/en-us/library/x5x13z6h.aspx" rel="noreferrer">SendAsync</a>.  Both methods will throw a InvalidOperationException on the second call if the first has not yet completed. </p>
  
  <p>The method <a href="http://msdn.microsoft.com/en-us/library/hh193922.aspx" rel="noreferrer">SendMailAsync</a>, introduced in .NET 4.5, does not list InvalidOperationException as a thrown exception.  Do the new .NET 4.5 methods implement some sort of queuing?  Reflector isn't able to shed any light on the implementation details of this class, so I assume this has been implemented in native methods.</p>
  
  <p>Can multiple threads call the SendMessageAsync method on a shared instance of the SMTP client safely?</p>