以下是我拷贝了别人的一段代码改了后,
可以实现同时发送两个收件人的功能,但是我想实现多发,(比如三个时,提示不成功)
哪为仁兄帮忙看看:需要改哪个地方,还是这个发送的方法不能实现群发???
这是方法的全部代码:
private void SendMyMail()
    {
        string SendTos = "[email protected]";   //收件人
        string CcTos = ",[email protected]";    //抄送人
        //string second = ",[email protected]";   
        string[] Receiver = System.Text.RegularExpressions.Regex.Split(SendTos + CcTos, ",");  //总收件人        //string[] Receiver = System.Text.RegularExpressions.Regex.Split(SendTos + CcTos + second , ",");  //总收件人        string FromMail = "[email protected]";     //发件人
        string Title = "你好";                    //邮件主题
        string Body = "附件里重要文档,请查收!";   //邮件主体
     
        if (SendTos != "")
        {
            string MailUserName = "liyou502";       //FromMail.Substring(0, FromMail.IndexOf('@'));
            string MailPassword = "****";     //发件人邮箱密码            MailMessage mailmessage = new MailMessage();
            MailAddress n = new MailAddress(FromMail);            mailmessage.From = n;
            mailmessage.Subject = Title;
            mailmessage.Body = Body;
                   
            System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
            client.Host = "smtp.163.com";
            client.Credentials = new System.Net.NetworkCredential(MailUserName,MailPassword);
            //向收件人和抄送人循环发送
            for (int j = 0; j < Receiver.Length; j++)
            {
                mailmessage.To.Add(Receiver[j].ToString());
                try
                {
                    client.Send(mailmessage);
                    Response.Write("成功发送!");
                }
                catch (Exception)
                {
                    Response.Write("<script language='javascript'>alert('邮件发送失败!')</script>");
                }
            }
            }
        }

解决方案 »

  1.   

    try
    MailAddress to = new MailAddress(Receiver[j].ToString);mailmessage.To.Add(to)
      

  2.   

    string CcTos = ",[email protected]";    //抄送人
    这句话是你要输入的收件人地址,可以添加多个,如string CcTos = "[email protected],[email protected],[email protected]"
    中间必须要用“,”分割
    string[] Receiver = System.Text.RegularExpressions.Regex.Split(CcTos, ",");  //总收件人
    总收件人只需要CcTos这个参数就可以了
      

  3.   

    收件人之间也可以用别的符号分割,只要在string[] Receiver = System.Text.RegularExpressions.Regex.Split(CcTos, ",");  //总收件人 
    代码中把","替换成你用的符号就行了
      

  4.   

      致::cantonstar 活到老,学到老
    我把代码改后,提示成功,但是如果邮箱地址如果是从数据库中读取的,那怎么处理赋值啊!先谢谢!一会就结帖!!!
      

  5.   

    改后的部分代码:
    try
                    {
                        string[] Receiver = new string[5];
                        for (int i = 0; i < 5; i++)       //模拟数据库的返回记录
                        {
                            Receiver[i] = ds.Tables[0].Rows[i]["email"].ToString();
                       
                        MailAddress to = new MailAddress(Receiver[i].ToString());
                        mailmessage.To.Add(to);
                        client.Send(mailmessage);
                        Response.Write("成功发送!");
                        }
                    }现在的问题是如何让每个地址只发一次,因为现在的结果是Receiver[0]-Receiver[5]分别发送5-1次,你们谁快来看看啊!
      

  6.   

    你把从数据库中读出来的邮箱用","连起来不就好了?
    SqlHelper db=new SqlHelper();
    string CcTos ="";
    SqlDataReader dr=db.Getdr("查询语句");
    while(dr.read())
    {
        CcTos=CcTos+","+dr.GetString(0);
    }
      

  7.   

    改成下面这样应该可以了
    private void SendMyMail() 
        { 
            string SendTos = "[email protected]";   //收件人          SqlHelper db=new SqlHelper(); 
            string CcTos =""; 
            SqlDataReader dr=db.Getdr("查询语句"); 
            while(dr.read()) 
            { 
                CcTos=CcTos+","+dr.GetString(0); 
            }//抄送人         //string second = ",[email protected]";    
            string[] Receiver = System.Text.RegularExpressions.Regex.Split(SendTos + CcTos, ",");  //总收件人         //string[] Receiver = System.Text.RegularExpressions.Regex.Split(SendTos + CcTos + second , ",");  //总收件人         string FromMail = "[email protected]";     //发件人 
            string Title = "你好";                    //邮件主题 
            string Body = "附件里重要文档,请查收!";   //邮件主体 
          
            if (SendTos != "") 
            { 
                string MailUserName = "liyou502";       //FromMail.Substring(0, FromMail.IndexOf( '@ ')); 
                string MailPassword = "****";     //发件人邮箱密码             MailMessage mailmessage = new MailMessage(); 
                MailAddress n = new MailAddress(FromMail);             mailmessage.From = n; 
                mailmessage.Subject = Title; 
                mailmessage.Body = Body; 
                        
                System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(); 
                client.Host = "smtp.163.com"; 
                client.Credentials = new System.Net.NetworkCredential(MailUserName,MailPassword); 
                //向收件人和抄送人循环发送 
                for (int j = 0; j  < Receiver.Length; j++) 
                { 
                    mailmessage.To.Add(Receiver[j].ToString()); 
                    try 
                    { 
                        client.Send(mailmessage); 
                        Response.Write("成功发送!"); 
                    } 
                    catch (Exception) 
                    { 
                        Response.Write(" <script language= 'javascript ' >alert( '邮件发送失败! ') </script >"); 
                    } 
                } 
                } 
            } 
      

  8.   

     致::cantonstar 活到老,学到老 
    我仿你代码,用数组实现了,谢谢!!!!