邮件发送代码如下:
private bool SendMailFun(string txt_From,string txt_To,string txt_Cc,
string txt_Subject,string txt_Body,string txt_Attachment,
string cmb_Priority,string cmb_Format)
{
try
{
MailMessage myMail = new MailMessage();
myMail.From = txt_From.Trim();         //设置发件人       
myMail.To = txt_To.Trim();             //设置收件人
myMail.Cc = txt_Cc.Trim();             //设置抄送
myMail.Subject = txt_Subject.Trim();   //设置邮件主题
myMail.Body = txt_Body.Trim();         //设置邮件正文

//添加附件
txt_Attachment=txt_Attachment.Trim();
if(txt_Attachment.Substring(txt_Attachment.Length-1,1)==",")
txt_Attachment=txt_Attachment.Substring(0,txt_Attachment.Length -1);
if (txt_Attachment.Trim() != "")
{
char[] delim = new char[] {','};
foreach (string att in txt_Attachment.Trim().Split(delim))
{
MailAttachment myAttachment = new MailAttachment(att);
myMail.Attachments.Add(myAttachment);
}
}
                
//设置邮件优先级
if (cmb_Priority == "高")
myMail.Priority = MailPriority.High;
else if (cmb_Priority == "低")
myMail.Priority = MailPriority.Low;
else
myMail.Priority = MailPriority.Normal; //设置邮件格式
if (cmb_Format == "Html格式")
myMail.BodyFormat = MailFormat.Html;
else
myMail.BodyFormat = MailFormat.Text; myMail.Fields.Add(CDO.CdoConfiguration.cdoSMTPAuthenticate,"1");
myMail.Fields.Add(CDO.CdoConfiguration.cdoSendUserName,txt_Email.Text.Trim()); //用户名
myMail.Fields.Add(CDO.CdoConfiguration.cdoSendPassword,txt_Psd.Text); //密码 
SmtpMail.SmtpServer=txt_Smtp.Text;       SmtpMail.Send(myMail);               //发送邮件
return true;
}
catch(Exception ex)
{
return false;
} 我目前测试是用163邮箱,SMTP为:smtp.163.com
昨天我能成功的连续发送70封邮件,以后就一直发送失败;
可今天成功的连续发送30封邮件,以后就一直发送失败.
不知是什么原因?
-----连发代码如下:----------
for(int i=1;i<dataSet.Tables[0].Rows.Count;i++)
{
  SendMailFun(txt_From,txt_To,txt_Cc,txt_Subject,txt_Body,
       txt_Attachment,cmb_Priority,cmb_Format);  
}
---------------------------

解决方案 »

  1.   

    好像是时间间隔问题,要等一段时间才可以发另一封邮件,因为我现又可以成功的发送5封邮件了.
    C#的时间等待是怎么写的{BCB里有用函数Sleep(),不知这个函数中哪个DLL里,C#调用API不方便}另外在处理这个事件中可以让程序运行其它事件的语句又是怎么样的?{BCB里用:Application->ProcessMessages();}用C#写点小东东还真辛苦啊.