首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用SmtpClient (C#)发送大量邮件需要很长时间

使用SmtpClient (C#)发送大量邮件需要很长时间
EN

Stack Overflow用户
提问于 2010-04-18 12:24:28
回答 3查看 2K关注 0票数 5

我用这段代码发送邮件:

代码语言:javascript
运行
复制
SmtpClient client = new SmtpClient();
client.Host = smtpServer;
client.Send(mailMessage);

如果我每秒钟触发这个代码十次,那么在几百封邮件之后,发送一封邮件需要10秒.这里会有排队吗?

  • 不应该是异步的吗?
EN

回答 3

Stack Overflow用户

发布于 2010-04-18 13:13:03

使用SmtpClient.SendAsync而不是SmtpClient.Send。

票数 2
EN

Stack Overflow用户

发布于 2010-04-18 13:37:44

可能有几个问题:

您是否正确地处理了MailMessage对象?如果您看一下,该对象实现了IDisposable,因此应该被释放。(我想是因为潜在的附属物。)我会从这里开始。

你和服务器管理员谈过了吗。可能会有某种节流机制,可以检测到你快速地发送了这么多邮件。

如果您想异步发送电子邮件,并关心尝试发送的结果,那么一定要注册SendCompleted事件。您还需要存储消息本身或某种表示,以了解在SendCompleted事件中完成了哪条消息。记住,事情开始的顺序可能不是他们完成的顺序。

票数 2
EN

Stack Overflow用户

发布于 2010-04-18 14:36:38

会不会是邮件服务器切断了您的请求?我使用本地IIS smtp服务器发送邮件,即使在几分钟内发送了数千条邮件(异常处理程序出错:P ),“发送”邮件也很少花时间,但是IIS可以很慢地处理这些邮件,有时在IIS邮件队列中清除它们也需要几个小时。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2662202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档