3

我目前正在与 WebApi 一起运行 MVC 网站,并且正在考虑构建电子邮件功能。

我有非常轻量级的控制器将大部分逻辑抽象到服务层,因为它是一个相当大的应用程序,我希望它的大部分可在 MVC 和 WebApi 之间重用。

这让我无法使用MVCMailer,因为所有示例都在 Web 项目中运行。如果编写了使用 WebAPI 的手机应用程序,它将无法使用电子邮件功能。

我想知道是否可以从它自己的项目中运行它?这是对我正在尝试做的事情的非常粗略的描述。

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

我可以将MVCMailerActionMailer抽象为技术上两者.Web都是.WebApiMVC4 项目吗?

如果没有,那么我将只使用Actionmailer.net 的独立版本或Postal中的等效版本,尽管功能有所减少。


编辑:更多信息

再想一想,这似乎很棘手,因为我必须为电子邮件视图做一些花哨的复制逻辑,以便它们可以自动与 mvc 和 webapi 网站一起部署。

也许最好将电子邮件与其自己的网站分开,并让服务层发出网络请求以发送电子邮件并将其适当地抽象出来。

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

我想这样我就可以将电子邮件部署在一台服务器上,而不必在所有服务器上设置 smtp。欢迎评论


相关问题

4

1 回答 1

2

正如我在问题中提到的,我创建了一个单独的电子邮件项目,它本质上是一个简单的 webapi 项目。

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

我现在通过 REST 服务向 Email webapi 发送电子邮件。


笔记:

我相信这可能可以使用Razor Generator在服务层内部进行。您将创建一个名为 email 的 MVC 项目,但从不直接运行它,并将其包含在 Web 项目中作为参考。

这将为您提供智能感知的所有好处,但您将使用剃须刀生成器将电子邮件视图编译为代码。

这种方法的缺点是,如果您有多个 Web 服务器,则必须在所有服务器上安装 smtp 服务。

于 2013-06-28T12:13:24.123 回答