Отправка электронных писем должна быть частью бизнес-уровня.
Я сталкивался с той же проблемой несколько недель назад ,,, я создаю веб-приложение с использованием asp.net mvc 3, которое состоит из трех проектов: Репозиторий(DAL), Услуги (BLL), Презентация (Web)
Моя логика приложения реализована на уровне служб, поэтому я искал лучший способ реализации полностью независимого модуля на уровне служб дляотправка HTML-сообщений пользователям, чтобы функции моего сервисного уровня могли использовать его напрямую, без необходимости переносить его на уровень представления.
После некоторого поиска я нашел элегантное решение, которое было сделано KaziМанзур, где он создал подсистему электронной почты, которая использует Razor Views для отправки электронных писем в формате HTML / Text за пределы веб-проекта.
Использование Razor для шаблона электронной почты вне ASP.NET MVC
С тех пор я использую его подсистему, и она отлично справляется со своей работой.