Mailkit不使用凭据进行身份验证

时间:2019-12-16 19:07:10

标签: email smtp smtpclient mailkit smtp-auth

我正在尝试使用Gmail帐户发送电子邮件。我能够使用yahoo发送电子邮件,但是由于某些未知原因,它不再起作用。我也对此发表了一个问题,但没有回应。

在这种情况下,我尝试连接到gmail帐户,以便我可以发送电子邮件,但没有运气,在连接后失败。

尽管我拥有正确的凭据,但连接成功,但根本不进行身份验证。

这是我遇到的错误。我想提一下凭据是正确的。

{"535: 5.7.8 Username and Password not accepted. Learn more at\n5.7.8  
  https://support.google.com/mail/?p=BadCredentials l17sm22879081wro.77 - gsmtp"}

我应该使用任何证书吗?我确定我的代码做错了。

代码

var message = new MimeMessage();

        message.From.Add(new MailboxAddress(contactModel.Name, "s@gmail.com"));
        // This needs to be put in a configuration file
        message.To.Add(new MailboxAddress("test", "a@gmail.com"));

        message.Subject = $"{contactModel.Name} contacted me!";
        message.Body = new TextPart("plain") {
            Text = contactModel.Message + 
            " Details of sender: " + contactModel.EmailAddress + ", " + contactModel.ContactNumber + " ," + contactModel.Name
        };

        using (var client = new SmtpClient())
        {
            try
            {
                if (!client.IsConnected)
                {
                    await client.ConnectAsync("smtp.gmail.com", 587,false);
                    client.AuthenticationMechanisms.Remove("XOAUTH2");
                }
                if (!client.IsAuthenticated)
                {
                    await client.AuthenticateAsync("s@gmail.com", "password");
                }

                await client.SendAsync(message);
                await client.DisconnectAsync(true);

                return "success";
            }
            catch (SmtpCommandException ex)
            {
                throw;
            }
            catch (SmtpProtocolException ex)
            {
                throw;
            }
            catch (Exception e)
            {
                throw new Exception($"The email from {contactModel.EmailAddress} captured but not sent to the owner");
            }

        }

enter image description here

我的收件箱中有这封电子邮件,我该如何绕过它?

2 个答案:

答案 0 :(得分:0)

您需要做的是在网络浏览器中登录您的Google Mail帐户,转到“设置”,然后选中“启用安全性较低的应用程序”。我相信如果您已经登录https://myaccount.google.com/lesssecureapps

,该网址将会带您到那里

答案 1 :(得分:0)

第一:

然后:

    通过进入Gmail Security Settings
  • 生成一个16个符号的密码
  • 使用生成的代码代替密码进行身份验证。