首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

发邮件的有关问题

2012-03-07 
发邮件的问题1.发邮件的方法 反复测试后 不能发送了 怎么解决2.发大量邮件时,如:要发1000个,用线程怎么处

发邮件的问题
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 


[解决办法]

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
[解决办法]
试试用 jmail 吧 或许能解决 发送的问题
[解决办法]
独立线程发送邮件 
发送完一封sleep(2000)

不然会被服务器当作垃圾邮件屏蔽掉
[解决办法]
探讨
引用:
独立线程发送邮件
发送完一封sleep(2000)

不然会被服务器当作垃圾邮件屏蔽掉


2秒是一个有效时间吗

热点排行