您可以優化您的代碼以使用異步(最佳)或多個線程(更容易)。您不會希望一次嘗試過多,因爲您理論上可能會重載smtp服務器。您還可以查看使用可提供更快性能的不同SMTP服務器,或者設置SMTP服務器池並使用多臺服務器並行發送。
另一種選擇是使用更優化的第三方組件。 MailBee.NET表示它們速度很快(雖然沒有具體說明),從描述中可以看出它們有很多優化。它們支持排隊/合併的消息,並可以直接發送消息(不需要SMTP服務器)。帶有直接消息發送的螺紋代碼應該非常快。
http://www.afterlogic.com/mailbee-net/smtp-component
你應該能夠得到時速遠遠超過800的消息。這很慢。回想我在ColdFusion(多年前)編程時,我記得他們6.1版本的一個主要特性是改進了郵件處理,在他們的測試中能夠發送1.2 million messages per hour。
不是垃圾郵件
對於那些誰覺得羣發郵件只是垃圾郵件,想想有很多成員誰不希望真正的郵件的公司和組織的人。即使是一家小銀行也可以輕鬆擁有10,000名客戶。每天發送他們每月的月結單,每小時發送800封電子郵件,發送郵件需要半天的時間。
在我的特殊情況下,我們提供的產品包括大型大學的LMS。由於許多學生只要收到可以註冊的通知,就會想要註冊課程,這對於通知的傳遞很重要。如果我們以每小時800分鐘的速度向2,000名學生髮送通知,那麼碰巧排在第一位的人在選擇名單後面的人的過程中會有很大的優勢。這是不可接受的。
我曾經爲一家擁有4,000,000名會員的大型非營利組織工作,並且向會員發送每月通訊(而不是垃圾郵件,訂閱通訊)。那時我們正在使用ColdFusion。
將數據包交給郵件引擎後,發送郵件是他的工作。所以我不確定我們之後是否有任何事情要做,除非你買了你自己的smtp服務器。 – voddy
關閉我的頭頂,您可能想嘗試使電子郵件發送方法異步,以便當前線程不會等待來自該代碼的響應。如果我的想法是正確的,你可以加快這一點。 –
@BlueIce,有許多合法的原因需要發送大量非垃圾郵件的電子郵件。電子郵件仍然是人們獲取關於他們使用的應用程序中的重要信息的通知的主要方式,並且應用程序通常會有成千上萬的用戶接收通知。 –