Можно ли запустить mvc mailer из отдельного проекта?

В настоящее время у меня есть веб-сайт MVC наряду с WebApi, и я изучаю возможности создания электронной почты.

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

Это отталкивает меня от использования MVCMailer, потому что все примеры выполняются из веб-проекта. Если было написано приложение для телефона, использующее WebAPI, оно не сможет использовать функции электронной почты.

Мне интересно, возможно ли запустить его из собственного проекта? Вот очень грубое описание того, что я пытаюсь сделать.

MyProject.Web   MyProject.WebApi
         \          /
          \        /
      MyProject.Services
              |
              |
       MyProject.Email

Могу ли я абстрагироваться от MVCMailer или ActionMailer, так как технически .Web а также .WebApi оба проекта MVC4?

Если нет, то я просто буду использовать автономную версию Actionmailer.net или аналог в Почтовом, хотя функциональность немного урезана.


РЕДАКТИРОВАТЬ: Больше информации

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

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

MyProject.Web   MyProject.WebApi
         \          /
          \        /
      MyProject.Services  --http-->  MyProject.Email

Я думаю, что таким образом я мог бы просто развернуть электронную почту на одном сервере, вместо того, чтобы настроить smtp на всех них. Комментарии приветствуются


Смежные вопросы

1 ответ

Решение

Как я упоминал в этом вопросе, я создал отдельный почтовый проект, который по сути является проектом webapi.

MyProject.Web   MyProject.WebApi
         \          /
          \        /
      MyProject.Services  --http-->  MyProject.Email

Теперь я отправляю электронные письма через службу REST на электронную почту webapi.


Замечания:

Я считаю, что это может быть возможно сделать внутри сервисного уровня с помощью Razor Generator. Вы должны создать проект MVC, называемый электронной почтой, но никогда не запускать его напрямую и включить его в веб-проект в качестве ссылки.

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

Недостатком этого подхода является то, что если у вас есть несколько веб-серверов, у вас должна быть установлена ​​служба smtp на всех них.

Другие вопросы по тегам