SmtpException - 操作已超时

时间:2012-05-24 18:49:23

标签: c# smtp

这是我的代码:

SmtpClient client = new SmtpClient();
client.UseDefaultCredentials = true;

using (client as IDisposable)
{
    foreach (MailAddress addr in Addresses)
    {
        if (addr != null) 
        {
            try 
            {
                message.To.Clear();
                message.To.Add(addr);
                client.Send(message);
            }
            catch (Exception ex) 
            {
                Log(ex);
            }
            i++;
        }
    }
}

每隔100秒,我会记录一条消息

  

操作已经超时。

这是客户端设置还是实际的邮件服务器?

2 个答案:

答案 0 :(得分:5)

当您无法连接到SMTP服务器时会发生此问题,这就是发生此超时消息的原因。因此,当您的客户端无法连接到SMTP服务器时,客户端上会出现此消息:

100秒是默认值,如下所述: http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.timeout.aspx

可能存在多个问题,为什么会发生此问题,即您需要修复的SMTP地址错误,SMTP拒绝,端口设置,SSL配置等。

答案 1 :(得分:0)

我也在经历这个超时。问题似乎是我尝试发送的电子邮件只有一个电子邮件地址,但是重复了30多次(这是在开发环境中,实际收件人电子邮件地址已更改为开发者)。将这个数字减少到大约20,就解决了这个问题。显然,这是我自己的SMTP服务器特有的问题,但是如果其他所有方法都失败,则要查看收件人列表。