我希望我的asp.net mvc框架系统在某个控制器内的某个操作被触发时自动发送电子邮件。是否有任何第三方库或.NET标准方法可以实现此功能?
我希望我的asp.net mvc框架系统在某个控制器内的某个操作被触发时自动发送电子邮件。是否有任何第三方库或.NET标准方法可以实现此功能?
一种更为现代的方法是使用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可能会抛出异常。
public class BaseController : Controller
{
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
// Send mail here
base.OnActionExecuted(filterContext);
}
}
使用.NET发送电子邮件并不难。您可以在操作内部发送邮件。
但是,在这里我们要谈论一下日志记录,对于日志记录,有许多第三方库可供选择。我知道有一个叫做Log4Net的库。
大多数这些日志框架都可以配置如何存储日志,并且可能还有一个设置,当它记录某些内容时发送电子邮件。
但在您的情况下,它只会编写一个简单的邮件函数,在用户输入操作时发送邮件。您可以查看:http://www.developer.com/net/asp/article.php/3096831 - 这是使用.NET发送邮件的演示 - 虽然是WebForms,但基本原理仍适用于MVC。