Отправка 2000 писем

Можно ли один раз создать экземпляр SMTP-клиента и синхронно отправить 2000 писем?

Мы получаем следующую ошибку при создании экземпляра SMTP-клиента для каждого отправляемого сообщения с использованием кода, также вставленного в конце этого сообщения:

System.Net.Mail.SmtpException: служба недоступна, закрытие канала передачи. Ответ сервера: 4.4.1 Тайм-аут соединения

Я подозреваю, что создание экземпляра SMTP-клиента для каждого сообщения вызывает это, но не уверен. Код как ниже.

List<MailMessage> messages = GetMailMessages();
foreach( MailMessags m in messages)
{
    try
    {
        SmtpClient client = new SmtpClient();//SHOULD THIS BE PLACED OUTSIDE AND BEFORE THE LOOP
        client.Send(m);
    }
    catch (Exception)
    {
        throw;
    }
}

РЕДАКТИРОВАТЬ 1:

Я только что нашел это на MSDN. (http://msdn.microsoft.com/en-us/library/ee706942%28v=vs.110%29.aspx). Таким образом, урок заключается в том, что при использовании массовой электронной почты вы должны создать экземпляр SMTP-клиента только один раз и повторно использовать его для всех множественных сообщений MailMessages.

Соединение, установленное текущим экземпляром класса SmtpClient с SMTP-сервером, можно использовать повторно, если приложение желает отправить несколько сообщений на один и тот же SMTP-сервер. Это
особенно полезно при использовании аутентификации или шифрования для установления соединения с SMTP-сервером. Процесс аутентификации и установления сеанса TLS может быть дорогостоящим процессом. Требование восстановления соединения для каждого сообщения при отправке большого количества сообщений на один и тот же SMTP-сервер может оказать существенное влияние на производительность. Существует ряд приложений для работы с большими объемами электронной почты, которые отправляют обновления состояния электронной почты, рассылки новостей или уведомления по электронной почте.

Ответы на вопрос(1)

Ваш ответ на вопрос