Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 优化使用SMTP发送邮件_C#_.net_Wpf_Email - Fatal编程技术网

C# 优化使用SMTP发送邮件

C# 优化使用SMTP发送邮件,c#,.net,wpf,email,C#,.net,Wpf,Email,我有一个应用程序,通过SMTP发送电子邮件,但它比sin慢。两个收件人可能需要20秒以上。我认为问题在于程序逻辑 程序打开带有电子邮件地址和显示名称的csv,然后使用for循环向每个收件人发送消息 问题是,我担心它每次发送给列表中的下一个人时都会重新建立SMTP连接 我的问题是,如何设置SMTP连接并为每个用户重新使用该连接?(除非这不是它慢的原因,有人可以告诉我为什么它跑得这么慢) void DoWork(对象发送方,DoWorkEventArgs e) { //获取用户列表 List myc

我有一个应用程序,通过SMTP发送电子邮件,但它比sin慢。两个收件人可能需要20秒以上。我认为问题在于程序逻辑

程序打开带有电子邮件地址和显示名称的csv,然后使用for循环向每个收件人发送消息

问题是,我担心它每次发送给列表中的下一个人时都会重新建立SMTP连接

我的问题是,如何设置SMTP连接并为每个用户重新使用该连接?(除非这不是它慢的原因,有人可以告诉我为什么它跑得这么慢)

void DoWork(对象发送方,DoWorkEventArgs e)
{
//获取用户列表
List mycsv=csvRead();
int total=mycsv.Count;
//向每个用户发送消息
对于(int x=0;x

VS:2013-4.5.net-WPF应用程序提高速度的一种方法是为邮件传递创建一个静态类。例如,使用静态方法SendMail(您将smtpDetails()放入其中)的邮件处理程序类。
因此,无需为循环中的每个调用创建新的SmtpClient实例-只需重用静态方法。

您还可以使用以下方法使用:

 using(SmtpClient smtp = new SmtpClient())
 {
      Port = port
      //etc
 }
这将处理您的所有smtp连接

 using(SmtpClient smtp = new SmtpClient())
 {
      Port = port
      //etc
 }