asp.net发送邮件奇慢!

kellybs 2004-04-12 02:18:52
我记得我以前用asp发送邮件,一次发送100个邮件地址,大概10秒钟都不用。

现在我用asp.net发送邮件,一次发送10个邮件地址,大概要用到120秒钟(本地机器测试),我把他放到服务器上,程序就出错了。

我把程序代码贴出来,请帮我看看
public void addbbsname(object sender, System.EventArgs e)
{

string sql="select top 10 id,username,password,email,ispost from Mailmember where ispost=0 order by id";
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
conn.Open();
SqlCommand cmd1=new SqlCommand(sql,conn);
SqlDataReader dr1=cmd1.ExecuteReader();

while (dr1.Read())
{
//发送邮件
PostMail(dr1["username"].ToString(),dr1["password"].ToString(),dr1["email"].ToString());

//更新状态
update(dr1["id"].ToString());
}
dr1.Close();
conn.Close();

}
public void PostMail(string username,string password,string email)
{
//邮件标题
string s= subject.Text.Trim();
//邮件内容
string m=brReplace(memo.Text);
string st="";
st="尊敬的用户,<b>";
st+=username+"</b><br>";
st+="您在本站的密码:";
st+=password+"<br>";
st+="<br>";
st+=m+"<br><br>";
st+="感谢您长期对<a href=http://www.javavsnet.com target=_balnk>Java、.Net技术网</a>支持。<br><a href=http://www.javavsnet.com target=_balnk>Java、.Net技术网</a>";

MailMessage MailTo=new MailMessage();
MailTo.From="webmaster@javavsnet.com";
MailTo.To=email;
MailTo.Subject=s;
MailTo.BodyFormat=MailFormat.Html;
MailTo.Body=st;

SmtpMail.SmtpServer ="61.19.12.2";
SmtpMail.Send(MailTo);
}

public void update(string id)
{
string insertsql="update Mailmember set ispost=1 where id="+id;
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
conn.Open();
SqlCommand cmd=new SqlCommand(insertsql,conn);
cmd.ExecuteNonQuery();
conn.Close();

}
...全文
136 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
kellybs 2004-04-14
  • 打赏
  • 举报
回复
pp
kellybs 2004-04-13
  • 打赏
  • 举报
回复
但是我用asp发送,没有这个问题,很快,用的是(jmail)
webdiyer 2004-04-13
  • 打赏
  • 举报
回复
发送慢应该和你的邮件发送服务器(mtpServer)很大关系,另外可以用StringBuilder来连接字符串,而不是用string+=.....。
linfuguo 2004-04-12
  • 打赏
  • 举报
回复
不错,学习!
kellybs 2004-04-12
  • 打赏
  • 举报
回复
我没有配置过SmtpMail.有没有用Jmail发送的邮件程序
gavintolee 2004-04-12
  • 打赏
  • 举报
回复
SmtpMail?请问用asp.net发送电子邮件还需要配置smtp?
joelbh 2004-04-12
  • 打赏
  • 举报
回复
System.Web.Mail.MailMessage myEmail = new System.Web.Mail.MailMessage();

// SET MESSAGE PARAMETERS

myEmail.From = from;
myEmail.Subject = subject;
myEmail.BodyFormat = System.Web.Mail.MailFormat.Html;
myEmail.Body = body;

//定义邮件的有限级,在此设定为高
// myEmail.Priority = MailPriority.High;

//给发送的邮件附加上一个附件
//string upFileName = fujian.PostedFile.FileName.ToString();
//myEmail.Attachments.Add(upFileName);

//SEND THE MESSAGE
while(emailReader.Read())
{
myEmail.To =emailReader["email"].ToString();
System.Web.Mail.SmtpMail.Send(myEmail);

}
gabriel1(H+W) 说的对,看上面是我的
kellybs 2004-04-12
  • 打赏
  • 举报
回复
这个邮件有没有关闭的方法?
kellybs 2004-04-12
  • 打赏
  • 举报
回复
有时候会出现这种错误!

线程正被中止。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Threading.ThreadAbortException: 线程正被中止。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息
gabriel1 2004-04-12
  • 打赏
  • 举报
回复
晕,你每次发一个邮件,就调用函数新建一个邮件对象,效率太低,我的实现方法是,在最上面protected一个邮件对象,没循环一次,改变它的参数,调用sendmail方法。效果会好得多
jjstar 2004-04-12
  • 打赏
  • 举报
回复
如果你觉得慢,就用异步委托来实现吧

62,254

社区成员

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

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

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

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