我正在尝试使用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对象并使用它来发送所有邮件?