我該如何做到這一點? SMTP類在開發機器上拋出關於找不到SMTP服務器的錯誤。有沒有辦法在開發機器上測試發送電子郵件?如何在開發機器上測試從asp.net發送電子郵件?
回答
肖恩,
直接從我的web.config:
<smtp deliveryMethod="SpecifiedPickupDirectory">
<network host="ignored" />
<specifiedPickupDirectory pickupDirectoryLocation="c:\email_c#" />
</smtp>
這工作得很好,只要能夠查看 '電子郵件' 說得到保存到pickupDirectoryLocation目錄。
試試看......
我通常通過爲SmtpClient創建一個包裝類,然後在我的測試中嘲弄包裝來做到這一點。這從我的單元測試中刪除了實際的郵件客戶端/服務器依賴關係。包裝本身相對較薄,所以我不覺得需要爲它創建測試。通常我會將我的集成級別測試作爲臨時環境中的探索性測試。暫存環境通常使用生產郵件服務器,但使用「假」數據 - 例如,用我自己的數據替換客戶電子郵件地址。儘管如此,我希望客戶端即使在您的開發系統上也能正常工作,除非您的郵件服務器受防火牆保護,否則會妨礙您的開發系統與之交談。你能詳細說明你遇到的錯誤嗎?
我認爲其他答案提供了一個更簡單的解決方案,它更適合於「發送測試郵件」而不是「測試發送郵件」這個問題。 – awrigley 2010-10-22 16:28:13
@awrigley - 對於自動化測試,處理成功和錯誤條件,嘲諷肯定比使用真實的類更容易。我覺得使用mock確保我的代碼正確地使用這個類,並進行探索性測試以確保集成正確完成,我感到很舒服。如果你有測試,你需要確保郵件格式正確,鏈接在其中工作等等,然後使用某種存儲和轉發機制,允許你手動檢查它們。注意:嘲諷不排除其他類型的測試。 – tvanfosson 2010-10-22 16:50:22
tvanfosson,我不懷疑你說的有效性或質量。但是......這不是問題的答案。同樣,問題是關於發送測試電子郵件,而不是測試發送電子郵件。因此,需要回答這個問題的人會感到困惑。 – awrigley 2010-10-22 18:18:05
你可以轉儲磁盤上的文件,通過configuring System.Net.Mail.SmtpClient
使用SpecifiedPickupDirectory
類型的deliveryMethod,我發現an example on SO
沒有看到有沒有什麼我們可以做的異常。只要你的開發機器上的細節指向一個合適的smtp服務器,並具有正確的憑據,那麼你的代碼將不會是問題,你應該看看鏈條。儘管一切正常,但我拒絕了目標機器的請求。花了兩年和三年檢查憑證後,從我們的服務器等發送我追蹤到的錯誤,以防止邁克菲阻止電子郵件端口25 ...
這有幾個可能的原因。
1)您的代碼是否配置爲在開發期間使用本地SMTP服務器,並且您已升級到Windows 7?您的本地主機上不再有SMTP服務器可用。查找並下載smtp4dev以允許您的本地主機捕獲已發送的電子郵件。
2)如果您使用的是遠程SMTP服務器,請檢查您的Windows防火牆以確認您可以發送外發郵件。如果是,請確認您的機器/用戶名有權通過該服務器發送郵件。快速telnet:25到服務器應該讓你知道你的連接是否被拒絕。
通過「測試發送電子郵件」你的意思是發送測試電子郵件,而不是正式/單元測試,我喜歡用smtp4dev假設:作爲頁解釋 http://smtp4dev.codeplex.com/
,它是一個虛擬的SMTP服務器,基本攔截你的應用程序發出的消息,允許你檢查這些消息,並確保一切正常,如你所願。這是一個Windows應用程序,如果您正在開發ASP.NET,希望這不是問題。
我知道這是一個古老的線程,但我只是偶然發現了這個服務: http://mailtrap.io/
這是受詛咒的輝煌。它用作應用程序的虛擬SMTP服務器,並不實際發送電子郵件,但允許您在瀏覽器(或通過API)中輕鬆查看它們。
這是殺手。
- 1. 從測試發送電子郵件
- 2. 如何從ASP.Net發送電子郵件
- 3. 正在被如何測試asp.net電子郵件發送
- 4. Postfix從開發機器發送電子郵件
- 5. ASP.NET發送電子郵件
- 6. 測試電子郵件發送
- 7. 測試電子郵件發送? - Python/Django
- 8. Django測試發送電子郵件
- 9. 電子郵件發送集成測試
- 10. 從觸發器發送電子郵件
- 11. 從ASP.NET頁面發送電子郵件
- 12. 從localhost ASP.net發送電子郵件
- 13. 定期從Asp.Net發送電子郵件
- 14. 從Gmail電子郵件發送與ASP.net電子郵件
- 15. 測試發送電子郵件從SharePoint沒有smtp服務器
- 16. 在電子郵件上發送異常或在Phonegap上發送電子郵件
- 17. 在機器人發送電子郵件「發送不起作用」
- 18. 發送電子郵件從
- 19. 在asp.net發送電子郵件發送密碼而不是電子郵件
- 20. 測試發送電子郵件沒有電子郵件服務器
- 21. 如何從javascript發送電子郵件?
- 22. 如何從C發送電子郵件
- 23. 如何從Node.js發送電子郵件?
- 24. 如何從PHPmyAdmin發送電子郵件?
- 25. 如何從broadcastreceiver發送電子郵件?
- 26. 在asp.net發送電子郵件給yahoo
- 27. 在asp.net中發送電子郵件
- 28. 發送電子郵件在ASP.NET C#
- 29. 發送電子郵件,圖像在asp.net
- 30. 在ASP.NET MVC2中發送電子郵件
發佈您用來發送電子郵件的代碼以及您看到的異常/錯誤消息。然後有人可能會幫助... – 2010-10-22 15:42:24
而錯誤是...? – 2010-10-22 15:43:48