Как я могу отправлять электронную почту асинхронно из приложения MVC 3?

В моем приложении MVC 3 Razor метод ActionResult Create() в контроллере обрабатывает пользовательский HttpPost. В таком случае:

  1. Данные сохраняются в базу данных.
  2. Электронные письма отправляются заинтересованным сторонам, использующим другой проект в решении.
  3. Страница подтверждения возвращается пользователю.

Поскольку работа с электронной почтой занимает больше всего времени, я пытаюсь использовать SmtpClient.SendAsync(), а не SmtpClient().Send.

Возможен ли этот сценарий, если наследование происходит от AsyncController? Кто-нибудь может привести пример?

Спасибо,

Арнольд


person Arnold    schedule 22.09.2011    source источник


Ответы (1)


Вы обязательно должны проверить MVC Mailer. Очень хороший инструмент для создания электронных писем с бритвенными представлениями. У него есть возможность отправлять почту асинхронно. Почтовая программа MVC также доступна через nuget.

person Robin van der Knaap    schedule 22.09.2011
comment
+1, так как у них есть отличные документы (особенно часть модульного тестирования) - person Adam Tuliper - MSFT; 23.09.2011
comment
Я только что наткнулся на MvcMailer, и ВАУ... этот материал должен был быть встроен в MVC3, а не в дрянные вспомогательные методы WebMail, которые просто воссоздают SmtpClient как статический класс. Престижность для MvcMailer! +1 за эту рекомендацию. - person Thiago Silva; 14.02.2012