使用 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”
我不知道为什么这次不起作用。
很难判断您提供的信息可能会发生什么。一些建议和尝试的事情
MailKit.Security.SecureSocketOptions.StartTls
通话中使用
false
而不是 Connect
从 2024 年 9 月 30 日开始,Google Workspace 帐号将不再支持安全性较低的应用、第三方应用或仅使用用户名和密码登录的设备。
App password