I\'m currently looping through a datareader and calling the System.Net.Mail.SmtpClient\'s Send() method. The problem with this is that it\'s slow. Each email takes about 5-1
You could send the mail asynchronous. That way the timeout should not interrupt your sending.
This article should help you get started with that: Sending Emails Asynchronously in C#.
There is another approach here: http://www.vikramlakhotia.com/Sending_Email_asynchronously_in_AspNet_20.aspx
And off course there are several commercial clients available, but the only one that i have tried and can recommend is http://www.aspnetemail.com/
Definitely spawn it off on a background worker process so they go out asynchronously.
BTW, 5-10 seconds per e-mail seems way slow to me. On my server it takes just fractions of a second per e-mail.