Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Mailkit验证尝试导致GMail SMTP错误_C#_Gmail Api_Smtpclient_Mailkit - Fatal编程技术网

C# Mailkit验证尝试导致GMail SMTP错误

C# Mailkit验证尝试导致GMail SMTP错误,c#,gmail-api,smtpclient,mailkit,C#,Gmail Api,Smtpclient,Mailkit,我使用以下代码使用accessToken通过google授权发送邮件,但我收到错误“AuthenticationInvalidCredentials:5.7.8用户名和密码不被接受。了解更多信息,请访问 5.7.8 g26sm3048778pfk.173-gsmtp“ 如果要使用OAuth2身份验证,从MailKit 2.0开始,需要使用以下方法(因为普通的Authenticate()方法不再尝试XOAUTH2): if (!string.IsNullOrEmpt

我使用以下代码使用accessToken通过google授权发送邮件,但我收到错误“AuthenticationInvalidCredentials:5.7.8用户名和密码不被接受。了解更多信息,请访问

5.7.8 g26sm3048778pfk.173-gsmtp“


如果要使用OAuth2身份验证,从MailKit 2.0开始,需要使用以下方法(因为普通的Authenticate()方法不再尝试XOAUTH2):

                if (!string.IsNullOrEmpty(Email))
               {
               Msg.From.Add(new MimeKit.MailboxAddress(Name, Email));
                //MimeKit.MimeMessage Msg = new MimeKit.MimeMessage();
                //Msg.From.Add(new MimeKit.MailboxAddress(Email, Name));
                //Msg.To.Add(new MimeKit.MailboxAddress((string)message.To));
                using (var client = new MailKit.Net.Smtp.SmtpClient())
                {
                    var credentials = new System.Net.NetworkCredential(Email, AccessToken);
                    // Note: if the server requires SSL-on-connect, use the "smtps"
                    // protocol instead
                    var uri = new Uri("smtp://smtp.gmail.com:587");

                    using (var cancel = new System.Threading.CancellationTokenSource())
                    {
                        var options = MimeKit.FormatOptions.Default.Clone();

                        if (client.Capabilities.HasFlag(MailKit.Net.Smtp.SmtpCapabilities.UTF8))
                            options.International = true;
                        client.Connect(uri, cancel.Token);
                        client.Authenticate(credentials, cancel.Token);
                        client.Send(options, Msg, cancel.Token);
                        client.Disconnect(true, cancel.Token);
                        flag = true;
                    }
                }
            }
var oauth2 = new SaslMechanismOAuth2 (credentials);
client.Authenticate (oauth2);