I was working on a project and there is bulk e-mail sending part of it and when user clicks on the button, he/she gets the \"Thanks the e-mails have been sent\" immediately as a
You can use MSMQ for creating your email queue and have a single thread process the queue.
The following post might be useful as it fits your problem domain. Although it does not use MSMQ but is a good post on processing scheduled tasks using ASP.net.
Simulate a Windows Service using ASP.NET to run scheduled jobs