Почтовое сообщение имеет вложения -> вложения - это Потоки -> Потоки должны быть удалены.
Вот декомпилированный метод Dispose для MailMessage:
protected virtual void Dispose(bool disposing)
{
if (disposing && !this.disposed)
{
this.disposed = true;
if (this.views != null)
{
this.views.Dispose();
}
if (this.attachments != null)
{
this.attachments.Dispose();
}
if (this.bodyView != null)
{
this.bodyView.Dispose();
}
}
}
Как правило, aкласс должен реализовывать IDisposable, если любой из содержащихся в нем потомков реализует его.