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

时间:2013-12-23 16:35:57

标签: c# .net multithreading email smtp

我是C#的新手,但我从VB.Net那里学到了很多关于.Net for windows编程的知识。

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

这在C#中是否可行?

1 个答案:

答案 0 :(得分:7)

只需使用多个线程(多个进程)。

在C#中,您可以使用任务执行此操作。

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

只需将send命令包装在此对象中,它将以异步方式发送。

如果将它包装在循环中,请注意它将为每封邮件启动一个新进程。

如果您需要同时发送大量邮件,我建议您使用ThreadPool。它可以让你控制你想要同时拥有多少个concurent线程。