Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET MVC-应如何处理发送电子邮件?_.net_Asp.net_Asp.net Mvc_Email - Fatal编程技术网

ASP.NET MVC-应如何处理发送电子邮件?

ASP.NET MVC-应如何处理发送电子邮件?,.net,asp.net,asp.net-mvc,email,.net,Asp.net,Asp.net Mvc,Email,在ASP.NET MVC应用程序中,应如何处理电子邮件的发送?我一直在思考这个问题,我非常喜欢以面向MVC的方式处理它(毕竟它是一个MVC应用程序) 我的意思是,发送给用户的电子邮件实际上只是一个视图,应该有一个模型传递给它。这就提出了一些问题:在执行操作时,我们应该如何同时向请求浏览器和SMTP服务器传递视图?框架是否有支持这一点的设施?如果没有,是否有针对此类功能的第三方版本/指南 以MVC方式处理电子邮件发送的备选方案有: 电子邮件发送代码显示在控制器的操作方法中 电子邮件发送是模型对象

在ASP.NET MVC应用程序中,应如何处理电子邮件的发送?我一直在思考这个问题,我非常喜欢以面向MVC的方式处理它(毕竟它是一个MVC应用程序)

我的意思是,发送给用户的电子邮件实际上只是一个视图,应该有一个模型传递给它。这就提出了一些问题:在执行操作时,我们应该如何同时向请求浏览器和SMTP服务器传递视图?框架是否有支持这一点的设施?如果没有,是否有针对此类功能的第三方版本/指南

以MVC方式处理电子邮件发送的备选方案有:

  • 电子邮件发送代码显示在控制器的操作方法中
  • 电子邮件发送是模型对象的一种行为

您如何在ASP.NET MVC应用程序中处理电子邮件的发送?您如何看待面向MVC的方法?

通常,当您需要新的结果类型时,您会编写一个新的
MyResult
对象,该对象将继承自
ActionResult
。这样,您的操作方法就可以自由选择所指示的结果类型,并且视图引擎只需在新的结果类型上调用
executesult()
方法,该方法将保存有关如何呈现数据的逻辑

但是,由于您所做的工作听起来像是只想从视图中获取HTML并通过电子邮件发送给它(与web浏览器的结果类型相同),因此应该深入讨论它。请注意,MVC2.0代码的答案是最好的方法,因为由于流行的需求,他们在第二个版本中添加了“将视图渲染为字符串”功能


您的问题很好,因为我强烈建议您对程序的任何输出使用MVC方法。从概念上讲,将视图发送到电子邮件与将视图发送到任何其他输出类型(PDF、移动浏览器、SMS)没有什么不同,通过构建可插拔的视图输出,您可以轻松地支持应用程序的使用扩展。

这是一个有趣的问题。您可以尝试创建自定义ActionFilterAttribute并实现OnResultExecuted方法。从那里,您应该能够获得输出html并通过电子邮件发送它


因此,您所需要做的就是用自定义属性修饰动作方法,调用视图将输出发送到浏览器并通过电子邮件发送。

您看过MvcMailer吗?请参阅NuGet包和


希望有帮助

我怀疑,如果有可能的话,我几乎不想发送与发送到浏览器的内容完全相同的电子邮件。