2010-09-14 107 views
5

我在我的asp.net時發送電子郵件一些代碼:正在被如何測試asp.net電子郵件發送

public void SendEmail(string message) 
{ 
    var body = message; 

    var email = new MailMessage(ConfigurationManager.AppSettings["SenderEmail"], 
          ConfigurationManager.AppSettings["RecipientEmail"], 
          "Email Test", body); 

    var client = new SmtpClient(); 
    client.Host = Properties.Settings.Default.smtp; 
    client.DeliveryMethod = SmtpDeliveryMethod.Network; 
    client.Credentials = CredentialCache.DefaultNetworkCredentials; 

    client.Send(email); 
} 

我想知道如何進行測試。無論是單元測試還是集成測試,我真的不在乎。我不想嘲笑這一點。我實際上想寫一個測試,用正確的消息發送一封電子郵件。

任何人都可以幫助我嗎?

回答

0

難道你不能把它放在一個模塊中,並從測試中調用它並設置收件人說你是電子郵件地址。如果你收到郵件,那麼我會說它正在工作。

2

發送電子郵件給自己,看看你收到了嗎?

如果你不知道如何做到這一點,你可能想回到基礎知識。

0

要設置一個自動化測試,您需要在可以查詢的服務器上有一個測試電子郵件地址(因爲主題是asp.net,我們將假設交換服務器),然後在郵箱中查詢郵箱,重新尋找使用:

選擇1:交換SDK

選擇2:通過Web請求(如果Exchange服務器的HTTP連接啓用

選擇3:寫你自己的簡單的POP3客戶端/ CLI/API

參考文獻3:http://www.codeproject.com/KB/IP/popapp.aspx

12

只需創建一個名爲 「信箱」 在你的文件夾C:/驅動器,並使用以下在Web.config文件:

<mailSettings> 
    <smtp deliveryMethod='SpecifiedPickupDirectory'> 
     <specifiedPickupDirectory pickupDirectoryLocation="c:\maildrop" /> 
    </smtp> 
</mailSettings> 

的更多信息:

http://weblogs.asp.net/gunnarpeipman/archive/2010/05/27/asp-net-using-pickup-directory-for-outgoing-e-mails.aspx

+1

+1這具有明顯的優勢,您不需要在發佈應用程序和測試應用程序之間使用不同的代碼。 – Brian 2010-09-15 14:22:34

+0

我知道這是一箇舊帖子,但有沒有人試圖用Selenium/SeleniumWebDriver來使用它? – khorvat 2015-05-04 12:59:08

+1

我必須添加一個虛擬的「from」標籤才能工作,否則會引發異常,說我錯過了from領域。有關更多詳細信息,請參閱[這裏](http://www.singular.co.nz/2007/11/using-an-smtp-pickup-directory-delivery-method-for-asp-net-development/)。 – julealgon 2015-10-14 12:37:19

0

有一種非常簡單的方法來在審批測試中測試生成的電子郵件。 您需要將方法分成兩個方法,一個創建電子郵件,一個發送電子郵件。然後你可以打電話。

EmailApprovals.Verify(mail) 

有在這裏展示的過程中視頻:http://www.youtube.com/watch?v=Sf16dPq2n3w

0

您可以使用SMTP4Dev

http://smtp4dev.codeplex.com/

只要安裝它(它是在你的任務欄上運行一個小程序)。 從您的開發程序結束不需要配置...

默認情況下,我認爲它只會在未修改代碼的情況下在您的本地主機上偵聽時使用。

當您發送電子郵件時,您會收到一個不錯的任務欄彈出通知...只需點擊通知即可查看電子郵件的實際內容!