2012-04-09 54 views
8

我想在类库中使用MvcMailer,它本质上是我的一站式商店,用于为我的解决方案撰写和发送电子邮件。我认为这就是MvcMailer设计的目的,但它似乎找不到我的任何.cshtml文件 - 我想它预计它们在我的启动项目中。MvcMailer可以在类库中使用吗?

MvcMailer与我的其他项目有100%分离吗?

谢谢。

回答

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不是开箱即用的Serializable,它有很多复杂的字段和关联。 核心ASP.NET框架还需要的HttpContext :(

+1

感谢张贴,这是一个真正的耻辱,因为这是一个非常理想的。我发现了一个类似的职位由他称其不可能的,但我在想,如果任何人都找到了解决方法,浪费了几个小时后,似乎没有简单的解决方案 – smdrager 2012-04-10 13:15:40

+3

似乎你可以使用ActionMailer.Net.Standalone来做到这一点,因为它使用RazorEngine。据我可以告诉它没有对HttpContext的要求,并可用于完全独立的进程/程序集。 – 2012-06-03 16:20:17

+1

单独使用ActionMailer.Net:http://geeksharp.com/2011/07/06/actionmailer-0-6-released/ – 2012-07-21 04:25:43

相关问题