我有一個電子郵件訂閱者的數據庫;約。 1800名單中。我們有我們自己的交換服務器。我使用下面的代碼從數據庫中獲取每個電子郵件地址,並一次一個地發送電子郵件。我正在使用ASP.NET 4.0 Web窗體來執行此操作。ASP.NET電子郵件訂閱
我注意到電子郵件正在發送時掛起的頁面。什麼是實現這個最好的方法 - 使用控制檯應用程序?我將如何去測試像這樣的壓力測試?
我也是在服務器日誌得到一個未處理的錯誤消息:
事件代碼:3001 事件消息:請求已經中止。
// Call data access method via business class
TaxSalesBusiness bizClass = new TaxSalesBusiness();
DataSet ds = bizClass.GetSubscribers();
foreach (DataRow row in ds.Tables[0].Rows)
{
// Check well-formedness of each email adddress
if (!IsWellformedEmailAddr(row["Email"].ToString()))
{
// Ignore and log mal-formed email address
LogError(row["Email"].ToString()
+ " is a malformed email address. Message was not sent to this subscriber "
+ row["Name"].ToString() + ".", "");
continue;
}
else
{
string toAddress = row["Email"].ToString();
smtpClient.Send(fromAddress, toAddress, message.Subject, message.Body);
}
}
+1,謝謝。測試所有正在發送的電子郵件的最佳方式是什麼? – IrishChieftain
@IrishChietain:我想你會問,因爲你想異步發送它們......你可以保留一個計數器,因爲你事先知道了你有多少條記錄(即'int totalEmailsToSend = ds.Tables [0] .Rows.Count' )。當調用回調方法時,您可以增加計數器。一旦他們都是平等的(totalEmailsToSend和你的櫃檯),你知道你已經完成了。 – Icarus