Очень распространенная ошибка - предполагать, что Taskmgr.exe - это инструмент для обнаружения утечек. Сочетание сборщика мусора .NET и диспетчера кучи Windows слишком сложное, чтобы его можно было пересмотреть по сравнению с числами, которые вы видите в этом инструменте.
Докажите это себе, отправив тысячи сообщений электронной почты. Если SmtpClient.Send () действительно протекает, ваша программа быстро завершит работу с исключением OutOfMemory. Получите больше информации об использовании памяти программой .NET с Perfmon.exe и счетчиками производительности в категории .NET CLR Memory. И хорошая книга, как CLR Рихтера через C #.