3
我正在更新一些舊代碼以便與SQL集成。我爲一家偶爾發送大量電子郵件的公司工作,這些郵件極大地降低了郵件服務器的速度。如果電子郵件開始建立,我們希望將這些電子郵件排入數據庫。在測試代碼的某些更改時,我注意到我會收到電子郵件,客戶端仍然會超時。這會造成問題,因爲客戶端會將該電子郵件設置在隊列中,並且稍後當另一個服務嘗試清除數據庫時我會收到它。SmtpClient.Send將發送消息並超時
SmtpClient emailClient = new SmtpClient(Settings.SmtpServer);
emailClient.Timeout = 100;
bool sent = false;
try
{
using (Impersonate imp = DA.GetImpersonator())
{
emailClient.Send(message);
sent = true;
}
}
catch (SmtpException) { }
finally
{
if (sent)
{
email.IsSent = true;
DA.Save(email);
}
}
10個測試運行中,9個超時,1個成功;我收到7封電子郵件。
這取決於服務器的行爲。 – SLaks