2
我正在使用本地主機通過SES發送批量郵件。這個問題有很多人回答,但沒有一個解決方案對我有幫助。問題是我可以一次發送100/150封郵件,之後出現上述錯誤。我試圖按照某些人的建議處理客戶端,但不工作。我正在使用C#代碼來執行此操作。任何答案/建議非常感謝。以下是我用於使用for循環發送批量郵件的代碼。您可能認爲這可能是一個限制性問題,這不是因爲我們每天有70封電子郵件和500000封電子郵件。關閉傳輸錯誤。超時等待來自客戶端的數據
Parallel.For(0, mail.Count, i =>
{
// Replace with your "From" address. This address must be verified.
String TO = mail; // Replace with a "To" address. If your account is still in the
// sandbox, this address must be verified.
// Create an SMTP client with the specified host name and port.
using (System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(HOST, PORT))
{
// Create a network credential with your SMTP user name and password.
client.Credentials = new System.Net.NetworkCredential(SMTP_USERNAME, SMTP_PASSWORD);
//Use SSL when accessing Amazon SES. The SMTP session will begin on an unencrypted connection, and then
//the client will issue a STARTTLS command to upgrade to an encrypted connection using SSL.
client.EnableSsl = true;
System.Net.Mail.MailMessage message1 = new System.Net.Mail.MailMessage(FROM, TO, SUBJECT, BODY);
message1.IsBodyHtml = true;
client.Send(message1);
client.Dispose();
}
});
本地計算機具有有限的資源(CPU,互聯網帶寬和內存,僅舉幾例)。如果您同時發送超過100條消息*,則可能沒有足夠的一個或多個資源可用於以足夠及時的方式可靠地*服務*所有這些單獨的TCP連接和SMTP會話,以防止其中一些超時。你有沒有考慮過?如果你從開始到結束對每個smtp會話進行基準測試,我預計你會超過一定的門檻,之後事情開始「意外」減慢。 –
我的本地機器有4 GB RAM和16Mbps網速。這個配置不足以正確運行應用程序嗎? – user3790666
根據原始數字來回答這個問題是不可能的。請考慮對您的代碼進行基準測試,以更好地瞭解您的問題的性質。 –