2011-11-01 72 views
2

有時我需要在我的網站上運行一些東西。例如,現在我想從支持賬戶發送一封郵件給某人。爲asp.net網站運行簡單的腳本

要做到這一點,我打算創建一個臨時網頁,然後把一些代碼在page_load事件,然後刪除該網頁:

protected void Page_Load(object sender, EventArgs e) 
{ 
    String notificationMessage = "Email body."; 
    Mailer.SendMail("[email protected]", "Email header", notificationMessage); 
} 

這是一個有點傻。但是,訪問我在web.config中設置的東西(如sql服務器和郵件模塊)相當方便。

有沒有更好的方法來做到這一點?

+0

我可以看到做的唯一的另一種方式是將值存儲在數據庫中並動態加載這些值。 – JonH

+2

可能與GenericHandler有關?至少你不會承擔頁面的開銷。 – Bazzz

+0

我同意@Bazzz,一個通用的HttpHandler將是一個很好的方法。 – neontapir

回答

1

由於@Bazzz和@neontapir所指出的,我會用一個通用的處理程序文件與此代碼:

public class Handler : IHttpHandler 
{ 
    public void ProcessRequest(HttpContext context) 
    { 
      String notificationMessage = "Email body."; 
      Mailer.SendMail("[email protected]", "Email header", notificationMessage); 
    } 
} 

這樣,你沒有渲染HTML,這將使得該過程更快,而你將只有一個.ashx文件與一個.aspx文件和一個.aspx.cs文件進行比較。從長遠來看,如果您發現自己做了這樣的事情,您應該考慮將其構建到應用程序中。

1

如果您使用System.Net.Mail.Mailmessage類(更多在http://www.systemnetmail.com/faq/2.1.aspx),您可以將IsBodyHtml設置爲true,並直接將HTML提供給消息,而無需擔心創建/刪除網頁......您可以'通過電子郵件發佈ASP.NET頁面,並期望與之交互。

你究竟想要做什麼?