我循环向我们公司的30多位员工发送邮件,每次发送一封信,每次都是发送到第三封信的时候,就提示操作已超时,smtp服务器是smtp.gmail.com,而收信人地址则是各种邮箱都有,例如 126、yahoo和gmail等。 我发送每封信都间隔 15秒,但是每次到第三封信就会 提示 操作已超时。 try 
{     client.Send(message); 
    message.Dispose(); 
    backgroundWorker1.ReportProgress(100, emailAddress + " have send \n"); } 
catch (System.Net.Mail.SmtpException  ee) 

    backgroundWorker1.ReportProgress(100, emailAddress +"  "+ee.Message+ " Appear wrong \n"); }

解决方案 »

  1.   

    没有什么限制.
    只是您处理机制需要改一下方式.
    不能用循环来发送邮件.因为以CPU的发送速度来发送,这样太快了,一般邮件服务器会当作垃圾邮件来处理.
    所以,您得先建一个表,来存放要要发送邮件.
    再用定时器或是工作排程来分隔一段时间来发送.
      

  2.   


    其实我也是从 数据库提取收件地址的形式,而且循环里面用       System.Threading.Thread.Sleep(5000); 来减速
      

  3.   

    System.Threading.Thread.Sleep(5000) 已经做了延迟,还有什么原因会这样呢?
      

  4.   

    我是放在 backgroundWorker1_DoWork 里面处理的