just use multiple threads (multiple processes).
In C #, you can do this with a task.
new Task(delegate { smtpClient.send(myMessage); }).Start();
Just wrap the send command in this object and it will be sent asynchronously.
Be careful if this is wrapped in a loop, it will start a new process for each mail.
if you need to send a large number of letters at the same time, I suggest you use ThreadPool . It allows you to control the number of matching threads that you would like to have at the same time.
source share