Ускорить отправку нескольких писем через smtp-сервер с помощью системы.Сеть.Почта

Я довольно новичок в C#, но я многому научился у VB.Net о программировании в .Net для windows.

Я только что сделал простой SMTP-клиент, который отправляет электронные письма из программы. Это консольное приложение и может отправлять только одно электронное письмо через сервер за раз. Это очень медленно, и мне нужно отправить несколько писем через моего клиента в в то же время.

возможно ли это в C#?

1 ответов


проще использовать несколько потоков (несколько процессов).

В C# вы можете сделать это с помощью задач.

new Task(delegate { 
    smtpClient.send(myMessage); 
}).Start();

просто обернуть send команда в этом объекте, и она будет отправлена асинхронно.

будьте осторожны, если это обернуто в цикл, он начнет новый процесс для каждой почты.

Если вам нужно отправить большое количество писем, в то же время я предлагаю вам использовать ThreadPool. Это позволяет контролировать, сколько concurent потоков вы хотели бы иметь на в то же время.