发邮件的问题
1.发邮件的方法 反复测试后 不能发送了 怎么解决
2.发大量邮件时,如:要发1000个,用线程怎么处理,有一个方法,要传的参数的
[解决办法]
mari
[解决办法]
分200次发
[解决办法]
首先添加命名空间
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
[解决办法]
不能发送的原因是什么?把异常贴出来看看
如果是调用第三方的邮件服务器发送话 如smtp.163.com
最好控制下发送的频率 比如1分钟一封
太过于频繁会被邮件服务器拒绝的
[解决办法]
不能发邮件你还不能debug? 有什么错误找原因啊
发1000次,相同的邮件不能把收件人都放一起吗,如果怕互相看到,BCC密送不就行了
[解决办法]
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); //进程休眠。}
[解决办法]
没用过发邮件的
[解决办法]
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
[解决办法]
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)
不然会被服务器当作垃圾邮件屏蔽掉
[解决办法]