当前位置: 代码迷 >> ASP.NET >> 发邮件的有关问题
  详细解决方案

发邮件的有关问题

热度:3831   发布时间:2013-02-25 00:00:00.0
发邮件的问题
1.发邮件的方法 反复测试后 不能发送了 怎么解决


2.发大量邮件时,如:要发1000个,用线程怎么处理,有一个方法,要传的参数的

------解决方案--------------------------------------------------------
mari
------解决方案--------------------------------------------------------
分200次发
------解决方案--------------------------------------------------------
首先添加命名空间
using System.Net.Mail;
using System.Data.SqlClient;
 
代码其实很简单,当然我这个功能比较简单
就是一个单击事件
C# code
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
------解决方案--------------------------------------------------------
不能发送的原因是什么?把异常贴出来看看
如果是调用第三方的邮件服务器发送话 如smtp.163.com
最好控制下发送的频率 比如1分钟一封 
太过于频繁会被邮件服务器拒绝的

------解决方案--------------------------------------------------------
不能发邮件你还不能debug? 有什么错误找原因啊

发1000次,相同的邮件不能把收件人都放一起吗,如果怕互相看到,BCC密送不就行了
------解决方案--------------------------------------------------------
C# code
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); //进程休眠。}
------解决方案--------------------------------------------------------
没用过发邮件的
------解决方案--------------------------------------------------------
探讨
1.发邮件的方法 反复测试后 不能发送了 怎么解决


2.发大量邮件时,如:要发1000个,用线程怎么处理,有一个方法,要传的参数的

------解决方案--------------------------------------------------------
C# code
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
  相关解决方案