是否应为每个消息创建(和处置)SmtpClient

本文关键字:SmtpClient 创建 消息 是否 | 更新日期: 2023-09-27 18:35:44

在创建/处置对象方面使用SmtpClient的正确方法是什么?我每封邮件都有一个 SmtpClient,但如果我想发送多封电子邮件,不确定这是否正确。也许创建客户端,发送多条消息然后处置更有效/更合适?

public void SendMail(MailMessage mail)
{
    using (var smtpClient = new SmtpClient())
    {
        smtpClient.Send(mail);
    }
}

是否应为每个消息创建(和处置)SmtpClient

查看SmtpClient的源代码,似乎它是为打开多个连接而构建的。对我来说,使用它在紧密循环中发送多条消息似乎没有问题(不要让对象存活数小时,一旦准备好发送就将其处理掉)。

创建和释放对象可能会对性能产生负面影响,因此这是不创建大量对象的好理由。