長時間讀者,首次提問者。SmtpClient.Send(MailMessage)與大BCC列表超時 - C#
向110個BCC收件人發送電子郵件時收到超時。
我試圖從一個網站發送一個電子郵件發送到我的俱樂部,其網站我跑的成員。 我將自己添加爲發件人和收件人,並將成員的電子郵件地址保存在BCC列表中。大約有110個成員。我使用發件人的用戶名和密碼對服務器進行身份驗證。
我可以準備MAILMESSAGE就好了,但是當我打電話SmtpClient.Send()IT時代週刊出,即使有10分鐘的門檻。 收件人較少時,Send()方法仍需要很長時間(5-7分鐘),但成功完成。 即使沒有附件,也會發生這種情況,無論郵件或附件的大小如何。
我認爲,我的郵件服務器(我託管的Web服務器)以某種方式檢查,對外部系統的每個收件人的電子郵件地址,如垃圾郵件/黑名單或對每個收件人的郵件服務器。
我的託管公司難倒,他們發誓盲目的,它的一切OK。
你知道StmpClient MAILMESSAGE或一員,我可以設置要告訴郵件服務器不能做到這一點的?或者,也許(更好)像在Parallels HSPhere電子郵件服務器中設置的那樣停止此操作?
非常感謝提前。
示例代碼
bool SendEmail(string[] emailAddresses)
{
MailMessage message = new MailMessage();
SmtpClient smtp = new SmtpClient("mail.myServer.org");
message.From = new MailAddress("[email protected]", "Display name");
message.To.Add("[email protected]");
foreach (string recipient in emailAddresses)
{
// ABout 110 recipients
message.Bcc.Add(recipient);
}
message.Subject = "Whatever";
message.ReplyTo = new MailAddress("[email protected]");
smtp.Credentials = new NetworkCredential(message.From.Address, "whatever");
try
{
message.Body = "A few hundred bytes";
smtp.Timeout = 300000; // 10 mins
smtp.Send(message);
}
catch (Exception ex)
{
// Report here
}
return true;
}
如果您使用標準的郵件客戶端(例如,ISP的網絡郵件客戶端)送了一堆BCC地址的消息,它需要一個同樣長的時間? –
吉姆,我從來沒有注意到它是這樣做的,但我從來沒有送過那麼多。下次我發佈消息時,我將使用包含110項BCC列表的託管網絡郵件進行比較。很好的建議,謝謝。 –
smtp.Timeout = 300000; // 10分鐘 它是5分鐘不是10。 –