2009-01-20 77 views

回答

21

更新的方法是使用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); 
} 

很明显,你可能需要一些错误处理有等 - 发送可以抛出一个异常例如,如果服务器拒绝连接。

3

创建一个BaseController,从其中继承所有其他控制器。 在BaseController中重写OnActionExecuted方法并插入用于发送电子邮件的代码。

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

那么它不真的很难发送使用.NET的电子邮件。您只需从行动中发送邮件即可。

但是,我认为我们在这里谈论的很少,而伐木时有一系列的第三方图书馆。我知道有一个叫做Log4Net。

大多数这些日志框架可以配置日志的存储方式,还可以设置发送电子邮件的日志。

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