title: Dispose SmtpClient in SendComplete?
body: <p>When I use SmtpClient's SendAsync to send email, how do I dispose the <code>smtpclient</code> instance correctly?</p>
  <p>Let's say:</p>
  <pre><code>
  MailMessage mail = new System.Net.Mail.MailMessage()
  {
     Body = MailBody.ToString(),
     IsBodyHtml = true,
     From = new MailAddress(FromEmail, FromEmailTitle),
     Subject = MailSubject
  };
  mail.To.Add(new MailAddress(i.Email, ""));
  SmtpClient sc = new SmtpClient(SmtpServerAddress);
  //Add SendAsyncCallback to SendCompleted
  sc.SendCompleted += new SendCompletedEventHandler(SendAsyncCallback);
  //using SmtpClient to make async send (Should I pass sc or mail into SendAsyncCallback?)
  sc.SendAsync(mail, sc);
  </code></pre>
  <p>In the <code>SendAsyncCallback</code> method, should I call <code>sc.Dispose()</code>, or <code>mail.Dispose()</code>?</p>
  <p>I checked MSDN document, one example calls MailMessage.Dispose(), but will this dispose method also dispose the <code>SmtpClient</code> instance?</p>