发送多封电子邮件SMTP

时间:2014-06-15 16:38:44

标签: c# .net smtp

我正在尝试使用MailKit连续发送300封电子邮件。虽然我认为这个问题一般与SMTP有关。

我知道如何使用SMTP发送电子邮件,工作正常,但是当我遍历列表中的每封电子邮件时,我是否每次都需要创建一个新的SMTP对象?还是可以重复使用?

这是我的代码:

SendEmail方法:

 using (var client = new SmtpClient())
 {
     var credentials = new NetworkCredential(from, password);

     var uri = new Uri("smtp://smtp.domain.com:587");
     client.Connect(uri);
     client.Authenticate(credentials);
     client.Send(message);
     client.Timeout = 1000;

     client.Disconnect(true);
 }

循环:

Parallel.ForEach(emailList, email =>
{
    try {
        SendEmail(user, refreshedToken, email, user, txtSubject.Text, txtMessage.Text);
    } catch(Exception ex) {
         this.BeginInvoke(new Action(() => Log(" >> Error Sending: " + email)));
    }
});

它发送电子邮件,但一分钟后我收到一条错误消息,说明SMTP连接被强行关闭。这告诉我,我正在快速创建许多SMTP连接。

是否可以创建一个SMTP对象并使用它来发送所有邮件?

0 个答案:

没有答案