发邮件的问题 1.发邮件的方法 反复测试后 不能发送了 怎么解决2.发大量邮件时,如:要发1000个,用线程怎么处理,有一个方法,要传的参数的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 mari 首先添加命名空间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); //进程休眠。} LZ,发邮件是有限制的,比如一个时间段的限制,一个邮箱号只能发多少,还有就是IP对发邮件也用限制 如果要发送多个,可以切换,比如每发送多少个换一个账号,IP等等 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)不然会被服务器当作垃圾邮件屏蔽掉 asp.net internet explorer cannot open the internet site operation aborted Server Application Unavailable 故障 日历控件 从数据库中取列,动态添加textbox, asp.net显示图片的问题 为什么CPU为100% 提示连接池已达到最大数,但连接都关闭了!是关闭的方法不对还是其他原因?? 没什么分了,希望师傅帮忙解决一下,万分感激! WebConfig配置问题 写异步方法的疑问 ASP.NET urlMappings 出现了异常 .Net调ORACLE存储过程出错
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分钟一封
太过于频繁会被邮件服务器拒绝的
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); //进程休眠。}
LZ,发邮件是有限制的,比如一个时间段的限制,一个邮箱号只能发多少,还有就是IP对发邮件也用限制 如果要发送多个,可以切换,比如每发送多少个换一个账号,IP等等
...{
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
...{
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
发送完一封sleep(2000)不然会被服务器当作垃圾邮件屏蔽掉