如何修复在 MailKit 中向 Gmail 发送电子邮件的问题?

问题描述 投票:0回答:1

使用 MailKit,我想发送验证码以挽救我的应用程序中的密码。
我复制了以前使用过的工作代码:

       private async void RescuePassword(object sender, EventArgs e)
       {
           string[] nums = ["1", "2", "3", "4", "5", "6", "7", "8", "9"];
           if (listBox1.SelectedIndex == -1)
           {
               MessageBox.Show("No password selected", "No password selected", buttons:                                                         MessageBoxButtons.OK, icon: MessageBoxIcon.Error);
               return;
           }

           rescuePasswordVericationCode = "";
           for (int _ = 0; _ < 4; _++)
           {
               rescuePasswordVericationCode += nums[rnd.Next(0, 10)];
           }
           await Task.Run(() =>
           {
               MimeMessage gmailMessage = new();
               gmailMessage.From.Add(new MailboxAddress("Safity", "[email protected]"));
               gmailMessage.To.Add(new MailboxAddress("Client", textBox2.Text));
               gmailMessage.Subject = "Verification code";

               gmailMessage.Body = new TextPart("plain")
               {
                   Text = $"Your verification code is {verificationCode}"
               };

               using (SmtpClient client = new SmtpClient())
               {
                   client.Connect("smtp.gmail.com", 587, false);
                   client.Authenticate("[email protected]", "this isnt real pswd");
                   client.Send(gmailMessage);
                   client.Disconnect(true);
               }
           });
       }

有错误:

MailKit.Net.Smtp.SmtpCommandException:„5.5.2 语法错误,无法解码响应。有关更多信息,请访问 https://support.google.com/a/answer/3221692 并查看 RFC 5321 规范。 a640c23a62f3a-a99efe3caebsm81376566b.16 - gsmtp”

我不知道为什么这次不起作用。

c# .net winforms email mailkit
1个回答
0
投票

很难判断您提供的信息可能会发生什么。一些建议和尝试的事情

从 2024 年 9 月 30 日开始,Google Workspace 帐号将不再支持安全性较低的应用、第三方应用或仅使用用户名和密码登录的设备。

© www.soinside.com 2019 - 2024. All rights reserved.