在非MVC项目中使用MvcMailer

时间:2011-12-04 17:13:47

标签: asp.net-mvc-3 mvcmailer

我有一个应该定期发送电子邮件的Windows服务。

在Windows服务项目旁边有一个MVC 3项目,它正在发送与MvcMailer(精美)的电子邮件。

我想使用相同的引擎为Windows服务发送电子邮件。

我该怎么做?

导入MVC二进制文件并为此创建一个控制器和新视图?它会起作用吗?

将其保存在数据库中并请求我的Web项目发送电子邮件可能不是最佳解决方案,因为该信息是查询的结果,而且太大而无法在请求中发送。

我看到的唯一其他选项是简单地请求Web项目完成所有工作,但这样将Windows服务放在另一个服务中以保存站点应用程序资源是没有好处的。 你会怎么做?

3 个答案:

答案 0 :(得分:4)

作为MVC Mail的替代方案,ActionMailer.NET现在可以在MVC之外独立使用。

详情请参阅

http://geeksharp.com/2011/07/06/actionmailer-0-6-released/

答案 1 :(得分:0)

为什么你认为发送到mvcmailer的查询太大了?如果您的邮件程序MVC项目已经工作并通过一个宁静的URL公开,那么这就成了您的电子邮件服务,只需将其称为来自您服务的Web请求。

您可以在请求中解决大小限制这不应该是一个问题。

答案 2 :(得分:0)

我认为从服务中调用mvc邮件可能是一种过度杀伤力。如果mvc项目应该公开发送所有其他解决方案的电子邮件API,那么构建REST API可能是有意义的。但是,如果您只想将action方法的功能引入Windows服务,那么我会选择一个进程内功能组件。如果您可以将mvcmailer操作方法的逻辑重构为另一个程序集,那么为什么不这样做,然后在Windows服务解决方案中将该assemlby包含为依赖项。 如果您可以提供邮件的全部用途以及它在Web场景中的使用方式,那么它可以帮助我们提供更好的架构。