ASP.NET MVC - Как отправка электронного письма должна быть обработана?

В приложении MVC ASP.NET, как отправка электронных писем должна быть обработана? Я думал об этом, и мне действительно нравится идея обработать его MVC-ориентированным способом (это - приложение MVC, в конце концов.)

То, что я имею в виду, - то, что электронная почта, которая поставляется пользователю, является действительно просто представлением, которому нужно передать модель ей. Это поднимает некоторые вопросы: Как мы должны поставить представления и браузеру запроса и серверу SMTP одновременно, когда действие выполняется? Платформа имеет какие-либо средства для поддержки этого? В противном случае есть ли некоторый сторонний выпуск/руководство для этого вида функциональности?

Альтернативы обработке электронной почты, отправляющей способом MVC:

  • Электронная почта, повышающая код, показывает в методах действия контроллера.
  • Почтовая отправка является поведением Объектов модели.

Как Вы обрабатываете отправку электронных писем в Ваших приложениях MVC ASP.NET? Что Вы думаете о MVC-ориентированном подходе?

5
задан Ronnie Overby 12 July 2010 в 19:57
поделиться

2 ответа

Обычно, когда вам нужен новый тип результата, вы программируете новый объект MyResult, который наследуется от ActionResult. Таким образом, ваш метод действия сможет свободно выбирать тип результата, а движок View Engine просто вызовет метод ExecuteResult() нового типа результата, который будет содержать логику отображения данных.

Однако, поскольку то, что вы делаете, похоже на то, что вы просто хотите получить HTML из представления и отправить его по электронной почте (это тот же тип результата, что и для веб-браузера), ответы на этот вопрос должны подробно рассказать об этом. Обратите внимание, что ответы с кодом для MVC 2.0 являются лучшим вариантом, так как они добавили функциональность "render a view to a string" во второй релиз по многочисленным просьбам.

Ваш вопрос хороший, так как я бы настоятельно рекомендовал использовать подход MVC для любого вывода данных из вашей программы. Отправка представления на электронную почту концептуально ничем не отличается от отправки представления на любой другой тип вывода (PDF, мобильный браузер, SMS), и, создавая подключаемые представления вывода, вы получаете простой способ поддержки расширения использования вашего приложения.

6
ответ дан 14 December 2019 в 08:40
поделиться

Это интересный вопрос. Вы можете попробовать создать пользовательский ActionFilterAttribute и реализовать метод OnResultExecuted. Оттуда вы сможете получить выходной html-файл и отправить его по электронной почте.

Таким образом, все, что вам нужно сделать, это украсить методы действия вашим пользовательским атрибутом, и вызов представления будет отправлять вывод в браузер, а также отправлять его по электронной почте.

0
ответ дан 14 December 2019 в 08:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: