Вы можете создать новую тему и отправить письма в этой теме:
[HttpPost]
[Authorize(Roles = "Administrator")]
public ActionResult SendMails()
{
new Thread(() =>
{
// Send the emails here
}).Start();
return View();
}
Если пользователь закроет браузер, этот поток будет продолжать работать до тех пор, пока он не завершит работу или пока не закроется AppDomain. Действие немедленно вернет представление и не будет блокировать.
Также было бы неплохо установить какой-либо флаг в базе данных, чтобы выполнялась операция отправки электронных писем, чтобы при двойном нажатии администратором кнопки ваши пользователи не сталкивались с большим количеством писем.
Если вы хотите более надежное решение, вы можете взглянуть на MSMQ . И вот учебник , который должен быстро начать работу.