簡體   English   中英

asp.net mvc框架,自動發送電子郵件

[英]asp.net mvc framework, automatically send e-mail

我希望我的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可以拋出異常。

創建一個BaseController,所有其他控制器都從該BaseController繼承。 在BaseController中覆蓋OnActionExecuted方法並插入用於發送電子郵件的代碼。

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

具有其他System.Net.Mail類的SmtpClient類可以從任何.NET程序輕松利用來發送郵件。 您只需將其指向可用且願意使用的SMTP服務器即可。

那么使用.NET發送電子郵件並不是很難。 您只需從操作中發送郵件即可。

但是,我認為我們在這里談論的很少,而且對於日志記錄,有一系列的第三方庫。 我知道有一個名為Log4Net。

大多數這些日志記錄框架都可以配置日志的存儲方式,並且可以在記錄日志時設置發送電子郵件。

但在您的場景中,它只會編寫一個簡單的簡單郵件功能,在用戶輸入操作時發送郵件。 您可以查看: http//www.developer.com/net/asp/article.php/3096831 - 它是使用.NET發送郵件的演示 - 盡管如此,但基本的東西仍然適用於MVC。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM