public ResponseModel Gmail(EmailModel email)
        {
            try
            {
                var gmailAuth = new GmailAuth().AuthAsync();

                using (var client = new SmtpClient())
                {
                    client.Connect("smtp.gmail.com", 587, SecureSocketOptions.StartTls);

                    client.Authenticate(new SaslMechanismOAuth2(gmailAuth.Result.Email, gmailAuth.Result.Token));

                    #region MESSAGE
                    var message = new MimeMessage();

                    message.From.Add(new MailboxAddress("GO VAGAS", "*****@*****.**"));
                    message.To.Add(new MailboxAddress(email.AddresseeName, email.AddresseeEmail));

                    message.Subject = email.Subject;
                    message.Body    = new TextPart("plain")
                    {
                        Text = email.Message
                    };
                    #endregion

                    client.Send(message);

                    client.Disconnect(true);
                }
            }
            catch (Exception ex)
            {
                return(new ResponseModel
                {
                    Success = false,
                    Message = ex.ToString()
                });
            }

            return(new ResponseModel
            {
                Success = true,
                Message = "E-mail enviado com sucesso."
            });
        }
        public IActionResult Google()
        {
            var gmailAuth = new GmailAuth();

            gmailAuth.client_id     = "client_id";
            gmailAuth.client_secret = "client_secret";
            gmailAuth.auth_uri      = "https://accounts.google.com/o/oauth2/auth";
            gmailAuth.token_uri     = "https://accounts.google.com/o/oauth2/token";
            var domainName = "http://localhost:5000";

            gmailAuth.response_type = "code";
            gmailAuth.scope         = "https://www.googleapis.com/auth/userinfo.email";

            gmailAuth.redirect_uri = $"{domainName}/home/getgoogledata/sign-in";
            var urlLink = new GmailAuthHelper().GetUrlForAuthorizationCode(gmailAuth);

            //   var urlLink = $"{gmailAuth.auth_uri}?client_id={gmailAuth.client_id}&response_type={}&redirect_uri={gmailAuth.redirect_uri}&scope={gmailAuth.scope}";
            return(Redirect(urlLink));
        }
        public async Task <GoogleUserInfo> GetGoogleData(string code)
        {
            var gmailAuth = new GmailAuth();

            gmailAuth.client_id     = "client_id";
            gmailAuth.client_secret = "client_secret";
            gmailAuth.auth_uri      = "https://accounts.google.com/o/oauth2/auth";
            gmailAuth.token_uri     = "https://accounts.google.com/o/oauth2/token";
            var domainName = "http://localhost:5000";

            //   var responseType="code";
            //   var scope="https://www.googleapis.com/auth/userinfo.profile";

            gmailAuth.redirect_uri = $"{domainName}/home/getgoogledata/sign-in";

            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                HttpResponseMessage response;
                var objJson = new GmailAuthHelper().GetUrlEncodedContent(gmailAuth, code);
                response = await client.PostAsync(gmailAuth.token_uri, objJson);

                if (response.IsSuccessStatusCode)
                {
                    var        jsondata = response.Content.ReadAsStringAsync().Result;
                    GoogleData mytoken  = await Task.Factory.StartNew(() => JsonConvert.DeserializeObject <GoogleData>(jsondata));

                    GoogleUserInfo userinfo = await GetUserDetails(mytoken.Access_token);

                    return(userinfo);
                }
                else
                {
                    return(null);
                }
            }
        }