1.发邮件的方法 反复测试后 不能发送了 怎么解决
2.发大量邮件时,如:要发1000个,用线程怎么处理,有一个方法,要传的参数的

解决方案 »

  1.   

    mari
      

  2.   

    首先添加命名空间
    using System.Net.Mail;
    using System.Data.SqlClient;
     
    代码其实很简单,当然我这个功能比较简单
    就是一个单击事件protected void btn_send_Click(object sender, EventArgs e)
        ...{
            MailMessage message = new MailMessage();
            //获取发送者地址
            message.From = new MailAddress(tbx_address.Text.Trim());
            //获取主题
            message.Subject = tbx_subject.Text.Trim();
            //获取发送邮件主题
            message.Body = we_content.Text.Trim();
            message.IsBodyHtml = true;
            //设置数据库链接
            SqlConnection conn = new SqlConnection(getstring());
            conn.Open();
            //数据查询用的是存储过程
            SqlCommand cmd = new SqlCommand("SelectEmail", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter dutyparameter = cmd.Parameters.Add("@MemberDuty", SqlDbType.NVarChar, 20);
            dutyparameter.Value = ddl_selectemail.SelectedValue;
            SqlDataReader dr = cmd.ExecuteReader();
            //执行查询获得要发往的邮件地址
            while (dr.Read())
    /ContractedSubBlock.gif" />        
    ...{
                message.To.Add(dr["MemberEmail"].ToString());
               
            }
            conn.Close();
            SmtpClient client = new SmtpClient();
            client.Send(message);
            lbl_info.Visible = true;
            lbl_info.Text = "发送成功";
           
        }另外在web。config设置发送邮件的远程服务器连接代码如下<system.net>
      <mailSettings>
        <smtp>
          <network host="smtp.163.com" port="25" userName="你的163帐号" password="你的密码" />
          </smtp>
        </mailSettings>
      </system.net
      

  3.   

    不能发送的原因是什么?把异常贴出来看看
    如果是调用第三方的邮件服务器发送话 如smtp.163.com
    最好控制下发送的频率 比如1分钟一封 
    太过于频繁会被邮件服务器拒绝的
      

  4.   

    不能发邮件你还不能debug? 有什么错误找原因啊发1000次,相同的邮件不能把收件人都放一起吗,如果怕互相看到,BCC密送不就行了
      

  5.   


    using System.Threading; Thread thread = new Thread(new ThreadStart(SendEmail));
                if (thread.ThreadState != System.Threading.ThreadState.Running)
                {
                    thread.Start();
                }
      private void SendEmail()
            {//发送邮件  System.Threading.Thread.Sleep(3000); //进程休眠。}
      

  6.   


    LZ,发邮件是有限制的,比如一个时间段的限制,一个邮箱号只能发多少,还有就是IP对发邮件也用限制    如果要发送多个,可以切换,比如每发送多少个换一个账号,IP等等
      

  7.   

    protected void btn_send_Click(object sender, EventArgs e)
        ...{
            MailMessage message = new MailMessage();
            //获取发送者地址
            message.From = new MailAddress(tbx_address.Text.Trim());
            //获取主题
            message.Subject = tbx_subject.Text.Trim();
            //获取发送邮件主题
            message.Body = we_content.Text.Trim();
            message.IsBodyHtml = true;
            //设置数据库链接
            SqlConnection conn = new SqlConnection(getstring());
            conn.Open();
            //数据查询用的是存储过程
            SqlCommand cmd = new SqlCommand("SelectEmail", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter dutyparameter = cmd.Parameters.Add("@MemberDuty", SqlDbType.NVarChar, 20);
            dutyparameter.Value = ddl_selectemail.SelectedValue;
            SqlDataReader dr = cmd.ExecuteReader();
            //执行查询获得要发往的邮件地址
            while (dr.Read())
    /ContractedSubBlock.gif" />        
    ...{
                message.To.Add(dr["MemberEmail"].ToString());
               
            }
            conn.Close();
            SmtpClient client = new SmtpClient();
            client.Send(message);
            lbl_info.Visible = true;
            lbl_info.Text = "发送成功";
           
        }另外在web。config设置发送邮件的远程服务器连接代码如下<system.net>
      <mailSettings>
        <smtp>
          <network host="smtp.163.com" port="25" userName="你的163帐号" password="你的密码" />
          </smtp>
        </mailSettings>
      </system.net
      

  8.   

    protected void btn_send_Click(object sender, EventArgs e)
        ...{
            MailMessage message = new MailMessage();
            //获取发送者地址
            message.From = new MailAddress(tbx_address.Text.Trim());
            //获取主题
            message.Subject = tbx_subject.Text.Trim();
            //获取发送邮件主题
            message.Body = we_content.Text.Trim();
            message.IsBodyHtml = true;
            //设置数据库链接
            SqlConnection conn = new SqlConnection(getstring());
            conn.Open();
            //数据查询用的是存储过程
            SqlCommand cmd = new SqlCommand("SelectEmail", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter dutyparameter = cmd.Parameters.Add("@MemberDuty", SqlDbType.NVarChar, 20);
            dutyparameter.Value = ddl_selectemail.SelectedValue;
            SqlDataReader dr = cmd.ExecuteReader();
            //执行查询获得要发往的邮件地址
            while (dr.Read())
    /ContractedSubBlock.gif" />        
    ...{
                message.To.Add(dr["MemberEmail"].ToString());
               
            }
            conn.Close();
            SmtpClient client = new SmtpClient();
            client.Send(message);
            lbl_info.Visible = true;
            lbl_info.Text = "发送成功";
           
        }另外在web。config设置发送邮件的远程服务器连接代码如下<system.net>
      <mailSettings>
        <smtp>
          <network host="smtp.163.com" port="25" userName="你的163帐号" password="你的密码" />
          </smtp>
        </mailSettings>
      </system.net
      

  9.   

    试试用 jmail 吧  或许能解决 发送的问题 
      

  10.   

    独立线程发送邮件 
    发送完一封sleep(2000)不然会被服务器当作垃圾邮件屏蔽掉