【问题标题】:Using MvcMailer in non-MVC project在非 MVC 项目中使用 MvcMailer
【发布时间】:2012-07-21 12:27:25
【问题描述】:

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

在 windows 服务项目旁边有一个 MVC 3 项目,它使用 MvcMailer 发送电子邮件(很漂亮)。

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

我该怎么做?

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

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

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

【问题讨论】:

    标签: asp.net-mvc-3 mvcmailer


    【解决方案1】:

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

    这里有详细介绍

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        为什么您认为发送到 mvcmailer 我们的查询太大了?如果您的 mailer MVC 项目已经在工作并通过一个 RESTful URL 公开,那么这将成为您的电子邮件服务,只需将其作为来自您的服务的 Web 请求调用。

        您可以绕过请求中的大小限制,这应该不是问题。

        【讨论】:

        • 如果 restful URL 没有得到适当的保护,它也可以成为一个非常好的垃圾邮件网关。
        • 当然,任何 smtp 服务器也是如此:)
        猜你喜欢
        • 2014-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-13
        相关资源
        最近更新 更多