¿Cómo enviar correos asíncronos? [duplicar]

Esta pregunta ya tiene una respuesta aquí:

¿Enviando correos electrónicos de forma asíncrona en C #? 11 respuestas
namespace Binarios.admin
{
    public class SendEmailGeral
    {
        public SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
        public MailMessage msg = new MailMessage();

        public void Enviar(string sendFrom, string sendTo, string subject, string body)
        {    
            string pass = "12345";
            System.Net.NetworkCredential smtpCreds = new System.Net.NetworkCredential(sendFrom, pass);

            //setup SMTP Host Here
            client.UseDefaultCredentials = false;
            client.Credentials = smtpCreds;
            client.EnableSsl = true;

            MailAddress to = new MailAddress(sendTo);
            MailAddress from = new MailAddress(sendFrom);

            msg.IsBodyHtml = true;
            msg.Subject = subject;
            msg.Body = body;
            msg.From = from;
            msg.To.Add(to);

            client.Send(msg);
        }
    }
}

Tengo este código, pero me gustaría mejorarlo para poder enviar correos asíncronos. ¿Podría sugerir alguna idea para mejorar este fragmento de código u otra forma de hacerlo? He intentado propiedades asíncronas que Visual Studio sugirió pero no pude usarlas.

Respuestas a la pregunta(3)

Su respuesta a la pregunta