最近在开发时需要群发邮件,现在手头由一个比较成熟的单个发送邮件的例子
问题
1。提供一个比较成熟的开发群发邮件实例
2。群发邮件最多能发送多少个?如果有大批量的情况,如何避免发送邮件超时的问题?
3。对于发送邮件的供应商来说,是不是不同的邮件地址每天发送的邮件条目不相同?我如何能避免供应商的这种行为?
   或者出现这种情况后我如何才能知道,以便提示给用户

解决方案 »

  1.   

    如果用免费的邮件服务器,你群发多了,对方会不会认为你是恶意行为,这是个问题我试过gmail的还不错,测试过群发40个以上
    1、要遍历收件人吧
    2、超时的可以记录下来,重发PS:lz不是做不轨行为吧 - -
      

  2.   

    如果一个一个的发送,量大的话可能会很慢,所以才想到能不能群发,这样最少循环几遍大家遇到这种情况是怎么处理的?给个好的思路吧likai0928:你是指的架自己的Mail服务器吗?
    这个好像不现实
      

  3.   

    MailAddress from = new MailAddress("[email protected]", "东东");          //邮件的发件人,后面为显示的名字
                MailMessage mail = new MailMessage();           
                mail.Subject = txtSubject.Text;                                            //设置邮件的标题
                mail.From = from;                                                          //设置邮件的发件人
                
                //多人发送
                string address = "";
                string displayName = "";         
                string[] mailNames = (txtMailTo.Text + ";").Split(';');
                foreach (string name in mailNames)
                {
                    if (name != string.Empty)
                    {
                        if (name.IndexOf('<') > 0)
                        {
                            displayName = name.Substring(0, name.IndexOf('<'));
                            address = name.Substring(name.IndexOf('<') + 1).Replace('>', ' ');
                        }
                        else
                        {
                            displayName = string.Empty;
                            address = name.Substring(name.IndexOf('<') + 1).Replace('>', ' ');
                        }
                     //   mail.To.Add(new MailAddress(address, displayName));
                        mail.CC.Add(new MailAddress(address, displayName));                //收件人地址的集合
                    }
               
                }
                
                mail.Body = txtBody.Text;                                                  //设置邮件的内容            
                mail.BodyEncoding = System.Text.Encoding.UTF8;                             //设置邮件的格式
                mail.IsBodyHtml = true;                                                    //设置正文是否为HTML格式
                mail.Priority = MailPriority.Normal;                                       //设置邮件的发送级别
                if (txtMailTo.Text != "")
                {
                string fileName = txtUpFile.Text.Trim();                                   //设置邮件的附件
                fileName = fileName.Substring(fileName.LastIndexOf("\\") + 1);             //取文件名
                mail.Attachments.Add(new Attachment(fileName));                            //添加附件到邮件当中
                }
                mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;
                SmtpClient client = new SmtpClient();
                client.Host = "smtp.163.com";                                              //设置SMTP的地址,注意:是什么邮箱就应该用相对应的地址          
                client.Port = 25;                                                          //设置用于 SMTP 事务的端口,默认的是 25
                client.UseDefaultCredentials = false;       
                client.Credentials = new System.Net.NetworkCredential("*****", "*****");//我的邮箱的登录名和密码。就是发送方的用户名和密码,要对应上面的Host地址
                client.DeliveryMethod = SmtpDeliveryMethod.Network;
                
                client.Send(mail);                                                         //邮件的正式发送
                MessageBox.Show("发送成功");                    
            }        private void btn_send_Click(object sender, EventArgs e)
            {
                sendMail();
            }这个,以前做过的,群发没问题
      

  4.   

    to sardineany:你贴的那个比较符合
    但是不知道用户量大的话是否正常?
    比如:批量给上千个用户发送?