发邮件的问题

liaoyukun111 2010-12-03 01:42:21
1.发邮件的方法 反复测试后 不能发送了 怎么解决


2.发大量邮件时,如:要发1000个,用线程怎么处理,有一个方法,要传的参数的
...全文
150 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
yan267 2010-12-03
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 liaoyukun111 的回复:]
引用 15 楼 q107770540 的回复:
独立线程发送邮件
发送完一封sleep(2000)

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


2秒是一个有效时间吗
[/Quote]

不是,只是一个间隔时间,如果需要群发邮件,最好有自己的邮件服务器,不然被当作垃圾邮件发的概率很高,
理论上是间隔时间越长越好。

liaoyukun111 2010-12-03
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 q107770540 的回复:]
独立线程发送邮件
发送完一封sleep(2000)

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

2秒是一个有效时间吗
q107770540 2010-12-03
  • 打赏
  • 举报
回复
独立线程发送邮件
发送完一封sleep(2000)

不然会被服务器当作垃圾邮件屏蔽掉
lyf348584094 2010-12-03
  • 打赏
  • 举报
回复
试试用 jmail 吧 或许能解决 发送的问题
jauntyhand 2010-12-03
  • 打赏
  • 举报
回复
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

jauntyhand 2010-12-03
  • 打赏
  • 举报
回复
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

anbin0814 2010-12-03
  • 打赏
  • 举报
回复
[Quote=引用楼主 liaoyukun111 的回复:]
1.发邮件的方法 反复测试后 不能发送了 怎么解决


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

LZ,发邮件是有限制的,比如一个时间段的限制,一个邮箱号只能发多少,还有就是IP对发邮件也用限制

如果要发送多个,可以切换,比如每发送多少个换一个账号,IP等等
subxli 2010-12-03
  • 打赏
  • 举报
回复
janesin 2010-12-03
  • 打赏
  • 举报
回复
没用过发邮件的
yan267 2010-12-03
  • 打赏
  • 举报
回复

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); //进程休眠。



}
telankes2000 2010-12-03
  • 打赏
  • 举报
回复
不能发送的原因是什么?把异常贴出来看看
如果是调用第三方的邮件服务器发送话 如smtp.163.com
最好控制下发送的频率 比如1分钟一封
太过于频繁会被邮件服务器拒绝的
y252999822 2010-12-03
  • 打赏
  • 举报
回复
首先添加命名空间
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
liaoyukun111 2010-12-03
  • 打赏
  • 举报
回复
???[Quote=引用 1 楼 foxdave 的回复:]
mari
[/Quote]
liaoyukun111 2010-12-03
  • 打赏
  • 举报
回复
不会线程 最好有代码
teddy000 2010-12-03
  • 打赏
  • 举报
回复
分200次发
Justin-Liu 2010-12-03
  • 打赏
  • 举报
回复
mari

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧