2022 年 5 月 30 日之后如何通过 Google 使用 MailKit?

Paw*_*wel 12 .net gmail imap mailkit

到目前为止,我很高兴使用类似于以下的方法连接到我的 Gmail 帐户:

\n
public async Task<IEnumerable<MimeMessage>> GetMessagesAsync()\n{\n    using var imapClient = new MailKit.Net.Imap.ImapClient();\n    var secureSocketOptions = SecureSocketOptions.Auto;\n    if (useSsl) secureSocketOptions = SecureSocketOptions.SslOnConnect;\n    await imapClient.ConnectAsync(host, port, secureSocketOptions);\n\n    await imapClient.AuthenticateAsync(login, password);\n\n    await imapClient.Inbox.OpenAsync(FolderAccess.ReadOnly);\n\n    var uids = await imapClient.Inbox.SearchAsync(SearchQuery.All);\n\n    var messages = new List<MimeMessage>();\n    foreach (var uid in uids)\n        messages.Add(await imapClient.Inbox.GetMessageAsync(uid));\n\n    imapClient.Disconnect(true);\n\n    return messages;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

自 2022 年 5 月 30 日起,这不再可能,因为对“不太安全的应用程序”的支持已被禁用

\n
\n

为了确保您帐户的安全,从 2022 年 5 月 30 日起,\xe2\x80\x8b\xe2\x80\x8bGoogle 不再支持使用要求您仅使用您的帐户登录 Google 帐户的第三方应用或设备。用户名和密码。

\n
\n

现在如何将 Mailkit 与 Gmail 结合使用?

\n

Jai*_*ime 28

停用不太安全的应用程序会阻止您直接使用用户名密码登录,但不会阻止您为应用程序生成特定密码。现在,您将使用为特定应用程序生成的密码登录,而不是使用 Google 密码登录。

解决方案很简单,不需要太多改变:

  1. 在您的 Google 帐户中启用两步验证。需要执行此步骤,因为 Google 仅允许为启用了两步验证的帐户上的应用程序生成密码。

  2. 转到生成应用程序密码 ( https://myaccount.google.com/apppasswords ) 并为您的应用程序生成密码

    在此输入图像描述

  3. 只需使用您的 Gmail 用户名 ( your_mail@gmail.com) 和应用程序中生成的密码即可c#