2008-11-20 70 views
2

我想構建一個應用程序,使我的客戶能夠通過電子郵件發送市場營銷信息。這將是一個嚴格監控的工具,僅用於合法的批量郵寄。這將具有所有必要的「取消訂閱」功能等構建批量郵件發件人

該解決方案將使用VB.NET來構建。

我的問題涉及到的最好的方式來實際發送電子郵件。我們可以在我們的數據中心使用SMTP服務器。我在想我們可以編寫某種多線程的Windows服務來監視發送的電子郵件數據庫,然後調用System.Net.Mail API來通過這個服務器發送。

這是要給我的業績水平,我需要將郵件發送到成千上萬的用戶在一個合理的時間框架?

如果不是這樣,我應該看着在「較低水平」做事情,在一個線程中執行DNS查找,在另一個線程上的25端口直接發送到相關服務器等?

任何指針,將不勝感激!


不是一個真正的答案 - 但是對於任何有興趣的更新......目前,我正在尋找一個從ActiveUp稱爲ActiveMail產品。

這似乎是一個MTA(執行自己的MX查找,並直接發送郵件),它帶有一個多線程的應用程序排隊。

+0

在StackOverflow上提出的類似問題:[如何以通用方式向用戶發送批量郵件?](http://stackoverflow.com/questions/215736/how-do-i -send-bulk-mail-to-my-users-in-a-generic-fashion)[良好的電子郵件服務用於批量電子郵件](http://stackoverflow.com/questions/215736/how-do-i-send-批量郵寄給我的用戶在一個通用時尚) – 2008-11-21 01:44:42

回答

1

這個問題不夠精確,但我會盡力回答它。有幾個因素限制你的選擇。最好的「方式」真的取決於你的情況。你的工作截止日期是什麼?

與您提到的其他選項相比,實現大型,低級別,多線程的郵件發送系統將花費大量時間。當然,從頭開始編寫整篇文章比使用SMTP服務器和.NET庫發送郵件要優雅得多。

也有不同的數據之間的帶寬的問題。 .NET應用程序和數據庫是否與SMTP一樣運行在同一臺服務器上?如果不是,帶寬管道將如何限制每秒發送郵件的最大數量?

我個人很喜歡保持簡單。如果時鐘正在滴答,重複使用可用軟件是一項明智之舉。你多久會發送數千封郵件?該時間間隔將確定時間範圍是否合理。是否如此之小以至於當另一個版本準備好發送出去時,系統仍然可以在第一批「批處理」上工作?

2

首先得到一個組件來完成繁重的工作。 我會推薦:aspnetmail

然後設置羣發郵件就像下載一些示例代碼一樣簡單。
WebMailer: Sending 1000s of emails from a web page without timing out.

相同的供應商還提供MX記錄檢查/反彈郵件跳棋等 該解決方案是不是免費的,但你救不追逐錯誤的時間/標準的郵件組件的不一致將會使這個值得您光顧。

哦,如果你想它坐落在桌面上的大宗郵件,它也提供: http://www.aspnetemail.com/rapidmailer/

3

我認爲這並不難推出類似的東西你自己。建設需要一天左右的時間。但是,使用現有的東西應該會更好。

不要使用自己的SMTP發送者:

不過,做批量電子郵件時,有些事情,我發現很重要。

查找的MX條目收件人和連接SMTPClient到他們 SMTP,這給了你,你得到即時的錯誤味精回來時,郵箱找不到或別的東西是錯的利益,而你不知道不要強調你自己的服務器。

在SmtpClient中也有一個小錯誤給我帶來麻煩,因爲主機名不是完全合格的域名(按照SMTP規範的要求),而是機器名稱(這是SmtpClient內部的字段)。一些SMTP服務器認真對待並且想要一個域名,所以我最終將該域設置爲反映到FQDN。 (希望這改變了)