2011-03-08 84 views
3

我想解決這樣一個問題:我有一個HTML表單(如註冊表單)哪個提交發送電子郵件。現在我將它作爲頁面請求的一部分發送。明顯的缺點:排隊框架解決方案

  • 使得要求較長
  • 有時SMTP服務器關閉,或超時和電子郵件不會被髮送

當使用PHP工作,我用的是基於隊列的解決方案 - 我已經將對象/ xml放入隊列主機,然後某種客戶端檢查該隊列。如果隊列任務已成功處理,則從隊列中刪除任務。我想知道,在Windows/.NET平臺上是否有類似的實現?

謝謝你,帕維爾

回答

3

有出自MSMQ這是很容易在.NET中使用提供強大的排隊。 Accessing Message Queues可能是一個很好的開始。

+0

看起來很好。我完全忘了MSMQ ......謝謝。 – dragonfly 2011-03-08 15:33:27

0

AH - 爲什麼?

我有一個HTML表單(如註冊表格)哪些提交發送電子郵件。

已提交將電子郵件寫入本地放置目錄,然後使用Windows系統的SMTP服務將它們提交給您的提供商電子郵件服務器。或者使用您自己的服務將它們複製到傳出的電子郵件代答文件夾(我這樣做,以便我可以放入代碼指向網站進行跟蹤)。

這些是標準方法。

+0

哇。將電子郵件內容寫入硬盤?發送電子郵件時我設置的電子郵件主題,來自cc等屬性如何?對不起,你能否詳細說明一下? :) – dragonfly 2011-03-08 15:32:53

+0

簡單。 EMAIL是通過HTTP傳輸的文本文件。它是完全編碼和 - carefull - 包括完整的標題信息,包括髮件人和收件人。沒有問題再次解壓。 http://imar.spaanjaars.com/496/using-a-local-pickup-folder-for-email-delivery – TomTom 2011-03-08 15:36:55

+0

我一定已經關掉了想法:)我雖然你只是簡單的HTML電子郵件內容....無論如何,它看起來很有趣。發送這些電子郵件怎麼樣?我剛碰到一些聲稱加載eml文件併發送不直截了當的文章?你如何發送它們? – dragonfly 2011-03-08 15:59:18

0

你不需要像這樣的隊列。您可以使用System.Net.Mail.SmtpClient類上的SendAsync方法。這將立即返回並且不會阻止頁面。

參見:http://msdn.microsoft.com/en-us/library/x5x13z6h.aspx

+0

不幸的是,應用程序正在使用第三方lib電子郵件解決方案但很高興知道這樣的類存在於.NET中,謝謝!還想把它放在隊列中,因爲它最近發生過很多次,什麼SMTP服務器關閉了。 – dragonfly 2011-03-08 15:35:30

+0

我不知道你爲什麼需要第三方電子郵件解決方案。他們通常是蛇油。內置的一個很好。如果您有SMTP傳遞可靠性問題,您可以將郵件傳遞到本地IIS SMTP服務器並將其轉發給您真實的郵件。 – Deleted 2011-03-08 23:21:08