title: What are best practices for using SmtpClient, SendAsync and Dispose under .NET 4.0
body: <p>I'm a bit perplexed on how to manage SmtpClient now that it is disposable, especially if I make calls using SendAsync.  Presumably I should not call Dispose until SendAsync completes.  But should I ever call it (e.g., using "using").  The scenario is a WCF service which mails out email periodically when calls are made.  Most of the computation is fast, but the sending of email can take a second or so, so Async would be preferable.</p>
  
  <p>Should I create a new SmtpClient each time I send mail?  Should I create one for the entire WCF?  Help!</p>
  
  <p><strong>Update</strong> In case it makes a difference, each email is always customized to the user.  The WCF is hosted on Azure and Gmail is used as the mailer.</p>