长期读者,第一次提问。
向 110 个密件抄送收件人发送电子邮件时出现超时。
我正在尝试从一个网站向我运营其网站的俱乐部成员发送一封电子邮件。我将自己添加为发件人和收件人,成员的电子邮件地址进入密件抄送列表。大约有110名成员。我使用发件人的用户名和密码对服务器进行身份验证。
我可以很好地准备 MailMessage,但是当我调用 SmtpClient.Send() 时它会超时,即使阈值为 10 分钟也是如此。当收件人较少时,Send() 方法仍然需要很长时间(5-7 分钟),但会成功完成。无论邮件或附件的大小如何,即使没有附件,也会发生这种情况。
我认为我的邮件服务器(在我的托管 Web 服务器上)以某种方式检查每个收件人电子邮件地址与外部系统(如垃圾邮件/黑名单)或每个收件人邮件服务器。
我的托管公司被难住了,他们发誓一切都好。
你知道我可以设置 StmpClient 或 MailMessage 上的一个成员来告诉邮件服务器不要这样做吗?或者(甚至更好)在 Parallels HSPhare 电子邮件服务器中设置以停止此操作?
提前谢谢了。
示例代码
bool SendEmail(string[] emailAddresses)
{
MailMessage message = new MailMessage();
SmtpClient smtp = new SmtpClient("mail.myServer.org");
message.From = new MailAddress("website@myServer.org", "Display name");
message.To.Add("website@myServer.org");
foreach (string recipient in emailAddresses)
{
// ABout 110 recipients
message.Bcc.Add(recipient);
}
message.Subject = "Whatever";
message.ReplyTo = new MailAddress("myOtherEmailAddress@external.com");
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;
}