【问题标题】:asp.net mvc framework, automatically send e-mailasp.net mvc框架,自动发送邮件
【发布时间】:2010-10-02 11:02:29
【问题描述】:

我希望我的 asp.net mvc 框架系统在每次触发某个操作(在某个控制器内)时发送一封电子邮件。是否有任何第三方库或 .net 标准方法来实现这一点?

【问题讨论】:

    标签: asp.net visual-studio-2008 email


    【解决方案1】:

    嗯,使用 .NET 发送电子邮件并不难。您可以从您的操作中发送邮件。

    但是,我认为我们在这里很少谈论日志记录,而对于日志记录,有一系列第三方库。我知道有一个叫 Log4Net。

    这些日志框架中的大多数都可以配置日志的存储方式,并且可能还可以配置在记录某些内容时发送电子邮件。

    但在您的场景中,它只会编写一个简单的邮件函数,当用户输入操作时发送邮件。你可以看看:http://www.developer.com/net/asp/article.php/3096831 - 它是一个使用 .NET 发送邮件的演示 - 虽然是 webforms,但基本的东西仍然适用于 MVC。

    【讨论】:

      【解决方案2】:

      SmtpClient 类和其他 System.Net.Mail 类可以很容易地从任何 .NET 程序中用于发送邮件。您只需将其指向一个可用且愿意的SMTP 服务器。

      【讨论】:

        【解决方案3】:

        更新的方法是使用System.Net.Mail - 这是 System.Web.Mail 的 2.0 替代品。

        类似的东西,从 BaseController(如果有其他控制器需要它)调用的实际控制器。

        我在静态类中有以下代码来处理从服务器发送简单的纯文本项目:

        internal static void SendEmail(MailAddress fromAddress, MailAddress toAddress, string subject, string body)
        {
            var message = new MailMessage(fromAddress, toAddress)
                              {
                                  Subject = subject,
                                  Body = body
                              };
        
            var client = new SmtpClient("smtpServerName");
            client.Send(message);
        }
        

        显然,您可能希望在其中进行一些错误处理等 - 例如,如果服务器拒绝连接,Send 可能会引发异常。

        【讨论】:

          【解决方案4】:

          创建一个 BaseController,所有其他控制器都从该控制器继承。 在 BaseController 中覆盖 OnActionExecuted 方法并插入您的代码以发送电子邮件。

          public class BaseController : Controller
          {
              protected override void OnActionExecuted(ActionExecutedContext filterContext)
              {
                  // Send mail here
                  base.OnActionExecuted(filterContext);
              }
          }
          

          【讨论】:

            猜你喜欢
            • 2012-04-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-07-04
            相关资源
            最近更新 更多