Cómo enviar un correo electrónico con C # a través de Gmail

Recibo un error al intentar enviar un correo electrónico a través de mi servicio web. He intentado habilitar el acceso a aplicaciones menos seguras, deshabilitando la verificación en dos pasos e iniciando sesión en la cuenta a través de un navegador web. Ninguna de las soluciones en SO ha funcionado para mí. Todavía estoy recibiendo:

Error: System.Net.Mail.SmtpException: el servidor SMTP requiere una conexión segura o el cliente no se autenticó. La respuesta del servidor fue: 5.5.1 Se requiere autenticación.

¿Qué puedo hacer para solucionar este problema?

namespace EmailService
{
    public class Service1 : IService1
    {    
        public string SendEmail(string inputEmail, string subject, string body)
        {
            string returnString = "";
            try
            {
                MailMessage email = new MailMessage();
                SmtpClient smtp = new SmtpClient();
                smtp.Host = "smtp.gmail.com";

                // set up the Gmail server
                smtp.EnableSsl = true;
                smtp.Port = 587;
                smtp.Credentials = new System.Net.NetworkCredential("[email protected]", "mypassword");
                smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
                smtp.UseDefaultCredentials = false;

                // draft the email
                MailAddress fromAddress = new MailAddress("[email protected]");
                email.From = fromAddress;
                email.To.Add(inputEmail);
                email.Subject = body;
                email.Body = body;

                smtp.Send(email);

                returnString = "Success! Please check your e-mail.";
            }
            catch(Exception ex)
            {
                returnString = "Error: " + ex.ToString();
            }
            return returnString;
        }
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta