MvcMailer可以用在类库中吗?

smd*_*ger 8 c# mvcmailer asp.net-mvc-3

我想在类库中使用MvcMailer,这本质上是我为我的解决方案编写和发送电子邮件的一站式商店.我认为这就是MvcMailer的设计目标,但它似乎无法找到我的任何.cshtml文件 - 我想它希望它们在我的启动项目中.

MvcMailer有没有办法与我的其他项目100%分开?

谢谢.

jor*_*hmv 1

根据 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 :(

  • 似乎您可以使用 ActionMailer.Net.Standalone 来执行此操作,因为它使用 RazorEngine。据我所知,它对 HttpContext 没有要求,可以在完全独立的进程/程序集中使用。 (3认同)
  • 感谢您发帖。这真是一个耻辱,因为这是一个非常理想的功能。我发现他写了一篇类似的帖子,说这是不可能的,但我想知道是否有人找到了解决方法。浪费了几个小时之后,似乎没有什么简单的解决办法。 (2认同)