我想在类库中使用 MvcMailer,它本质上是我为我的解决方案撰写和发送电子邮件的一站式商店。我认为这就是 MvcMailer 的设计目的,但它似乎找不到我的任何 .cshtml 文件——我猜它希望它们出现在我的启动项目中。
有什么方法可以让 MvcMailer 与我的其他项目 100% 分开?
谢谢。
我想在类库中使用 MvcMailer,它本质上是我为我的解决方案撰写和发送电子邮件的一站式商店。我认为这就是 MvcMailer 的设计目的,但它似乎找不到我的任何 .cshtml 文件——我猜它希望它们出现在我的启动项目中。
有什么方法可以让 MvcMailer 与我的其他项目 100% 分开?
谢谢。
根据 MvcMailer 文档https://github.com/smsohan/MvcMailer/wiki/MvcMailer-Step-by-Step-Guide (摘录如下),这是不可能的,也许您可以拥有一个单独的 Web 项目,其唯一目的是发送电子邮件并仅接受来自您的应用程序的请求
从后台进程发送电子邮件您需要从后台进程发送电子邮件吗?你是对的。您不想阻止发送该通知电子邮件的请求/响应周期。相反,您想要的是一个为您执行此操作的后台进程,即使它是在短暂延迟后发送的。以下是您可以执行的操作:
将您的电子邮件相关数据保存到数据库中。创建发送电子邮件的 REST/SOAP Web 服务。这将确保您的 Mailer 可以访问 HttpContext,这是核心 ASP.NET MVC 框架正常工作所必需的。例如,查找您的视图、生成 URL 和执行身份验证/授权。创建一个调用 Web 服务的简单应用程序。这可能是 Windows 服务应用程序或在 Windows 计划任务下运行的可执行应用程序。MvcMailer 的未来版本可能会支持这一点。但这很难有两个原因:
MailMessage 不是开箱即用的可序列化的,并且有很多复杂的字段和关联。核心 ASP.NET 框架仍然需要 HttpContext :(