2014-09-21 40 views
-1

我需要在C#中創建一個SMTP服務器。我已經開發了一個使用SMTP客戶端發送大量郵件(近100萬/小時)的應用程序。但是,當它達到特定限制時,我會收到'操作超時'錯誤消息。當我檢查了我的SMTP服務器(專用服務器)時,我發現郵件隊列中有很多郵件,發送到遠程服務器的郵件的比例與來自SMTP客戶端的郵件相比非常低。因此我計劃開發自己的SMTP服務器應用程序。我需要啓動儘可能多的線程,並提高發送速率。我有兩個專用服務器。一個用於運行我已經創建的另一個用於SMTP服務器的Bulk Mail應用程序。所以請幫我創建一個非常高效的SMTP服務器應用程序。也請提供源代碼示例的鏈接。然後,我可以輕鬆地參考並創建一個好的。在C#中創建一個SMTP服務器#

在此先感謝。

+1

這似乎是解決問題的錯誤方法。已經有大量的SMTP服務器可用。很可能你打算建立一個比任何可用的更好的。看起來更高效的方法首先是確定什麼放緩了現有的服務器。 – David 2014-09-21 20:23:02

+0

構建SMTP服務器非常困難嗎?如果我創建了一個SMTP服務器,那麼我可以根據我們的需要完全構建它。這就是我的想法。 – Shoaib 2014-09-22 05:15:51

+0

我試圖配置當前的SMTP服務器,我正在使用什麼。但在達到15,000到20,000封郵件時仍然收到錯誤消息。我需要發送郵件,而不會失敗。請幫助我開發一個SMTP應用程序。我已經搜索了很多獲取一些源代碼樣本。但無法找出。 – Shoaib 2014-09-22 09:27:15

回答

0

聽起來像你對我的郵件添加到隊列比SMTP服務器更快的可以給他們這樣的隊列越來越長,最終需要太多的時間來發送個人電子郵件,因此超時。您可以將電子郵件的超時時間從默認值(C#中的100000 ms)更改爲任何您希望防止超時的電子郵件。

SmtpClient mSmtpClient = new SmtpClient("smtp.office365.com", 587); 
mSmtpClient.Timeout = //Time in milliseconds 

這不會解決您的問題,但如果您的問題是峯谷問題,它可能會消除它。通過這種策略,你正在玩火,你的失敗會因爲每次失敗而失去更多的潛力而被拖延。我建議調整你的硬件,也許第二個smtp繼電器或這種性質的東西。我只是希望我不會在這篇文章中啓用垃圾郵件機器人。

+0

行..我會盡量增加時間到1小時。我找到了另一種選擇。其實我使用郵件啓用SMTP服務器。我有一個選項可以將郵件直接注入到SMTP Outgoing Queue文件夾中。現在我正在嘗試那個。請讓我知道你對此的看法。爲此,我必須在發送隊列文件夾中創建兩個文件。所以,我認爲是,將消耗更少的時間不是通過SMTP客戶端發送郵件創建文件更快的選擇。 – Shoaib 2014-09-24 09:08:33