使用System.Net.Mail加速通过SMTP服务器发送多个电子邮件

6

我对C#还很陌生,但是我从VB.Net学到了如何在Windows上进行.Net编程。

我刚刚创建了一个简单的SMTP客户端,可以通过程序发送邮件。它是一个控制台应用程序,每次只能通过服务器发送一封电子邮件。这非常慢,我需要在客户端同时发送多封电子邮件。

在C#中是否有可能实现这一点?


使用异步机制。 - Jha.prashant
也许你没有看到,但我说过我在C#方面很菜,所以我不知道怎么做...但还是谢谢。 - rodit
我建议你阅读有关多线程的内容。 - Sam
非常感谢 @Sam 的帮助。 - rodit
2
你好。现在推荐使用System.Threading.Tasks.Task而不是“手动”创建每个单独的线程。这里有一个如何使用它的例子(在文章末尾)。 - Sam
1个回答

7

可以简单地使用多线程(多进程)。

在C#中,您可以使用Task来实现此操作。

new Task(delegate { 
    smtpClient.send(myMessage); 
}).Start();

只需将您的send命令包装在此对象中,它就会异步发送。

如果将其包装在循环中,请小心,每封邮件都会启动一个新进程。

如果您需要同时发送大量邮件,建议使用ThreadPool。它允许您控制同时拥有多少并发线程。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接