Я думаю, что ваше решение не зависит от того, используете ли вы MVC.
Способ, которым я реализовал это в прошлом, заключается в том, чтобы сохранить тот факт, что вам нужно отправить электронное письмо в базу данных, а затем обработать это с помощью службы Windows.
Еще один способ сделать это - использовать MSMQ в качестве носителя данных. В общем случае MSMQ не следует использовать для «хранения» данных, а только в качестве механизма передачи сообщений, но в этом случае это, безусловно, вариант.
С точки зрения разработки «очереди», если электронная почта по какой-то причине требует заказанной доставки, просто наличие столбца «RequestedDTTM» в таблице базы данных позволит вам отправлять их в том порядке, в котором они были запрошены.
Наконец, я хотел бы рассмотреть возможность реализации простого многопоточного отправителя электронной почты, чтобы максимизировать производительность. Использование TPL в .NET 4.0 сделает это довольно легко. В качестве альтернативы вы можете использовать что-то вроде библиотеки SmartThreadPool (доступно на codeplex.com) для управления потоками отправителя электронной почты.
Как упоминалось в другом ответе, на который вы ссылались, ваш пользовательский интерфейс не должен выполнять эту отправку электронной почты.