Я бы предложил приложению ASP.NET записать информацию в очередь некоторого описания - будь то очередь сообщений или просто таблица в базе данных.
Затем запустите отдельную службу для обработки очереди и отправки электронных писем. Таким образом, вам не нужно ждать, пока письма будут отправлены , прежде чем отвечать, но вы все равно можете быть уверены, что к моменту ответа страницы запрос будет сохранен.
Другой альтернативой может быть просто создание нового потока для отправки электронной почты в приложении ASP.NET, но это означает, что в случае отказа (или повторного использования) приложения запрос будет потерян. Упорство и отказоустойчивость проще разместить в отдельном сервисе, IMO.