// Invokes the SendEmail method on another thread.
// Read MSDN on catching exception on completion and then wait a bit and send again.
Task.Factory.StartNew(() => SendEmail());
Ответ 2
Если вы используете .NET в Windows, вы можете использовать службу SMTP IIS. Используйте SmtpClient и установите способ доставки в каталог пикапов. В этом режиме SmtpClient будет записывать в папку пикапа SMTP (что-то вроде c:\inetpub\smtp_root\pickup) вместо того, чтобы пытаться доставить почту. Эта папка представляет собой очередь сообщений, а служба SMTP будет обрабатывать доставку, повторить попытку и NDR и т.д. Гораздо лучше, чем пытаться написать ее самостоятельно.