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

2024-01-29

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

public async Task<IEnumerable<MimeMessage>> GetMessagesAsync()
{
    using var imapClient = new MailKit.Net.Imap.ImapClient();
    var secureSocketOptions = SecureSocketOptions.Auto;
    if (useSsl) secureSocketOptions = SecureSocketOptions.SslOnConnect;
    await imapClient.ConnectAsync(host, port, secureSocketOptions);

    await imapClient.AuthenticateAsync(login, password);

    await imapClient.Inbox.OpenAsync(FolderAccess.ReadOnly);

    var uids = await imapClient.Inbox.SearchAsync(SearchQuery.All);

    var messages = new List<MimeMessage>();
    foreach (var uid in uids)
        messages.Add(await imapClient.Inbox.GetMessageAsync(uid));

    imapClient.Disconnect(true);

    return messages;
}

自 2022 年 5 月 30 日起,这不再可能,因为对“不太安全的应用程序”的支持已取消disabled https://support.google.com/accounts/answer/6010255?hl=en:

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

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


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

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

  1. 开启两步验证 https://support.google.com/accounts/answer/185839在你的谷歌帐户中。这一步是required因为 Google 只允许为启用了两步验证的帐户上的应用程序生成密码。

  2. 转到生成应用程序密码(https://myaccount.google.com/apppasswords https://myaccount.google.com/apppasswords) and 生成密码 https://support.google.com/mail/answer/185833?hl=en-GB为您的应用程序。

  3. 只需使用您的 Gmail 用户名 ([email protected] /cdn-cgi/l/email-protection)和您的密码中生成的c#应用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2022 年 5 月 30 日之后如何通过 Google 使用 MailKit? 的相关文章

  • 为 Razor 组件添加 XML 文档

    有没有办法为 Razor 组件添加 XML 文档 我注意到 Microsoft 的一些组件有 IntelliSense 中显示的文档 然而 将通常的 XML 文档添加到代码隐藏部分类似乎不起作用
  • Visual Studio 2013 中的内存分析

    我想探索如何在我的应用程序中分配内存 我有 C 控制台应用程序并使用 Visual Studio 2013 Professional I go to Analyze gt 性能和诊断并选择 NET内存分配 结果我得到以下总结 图表中每次CP
  • 在c#中创建sql连接

    我是这个网站的新手 也是编程的新手 我目前正在通过销售点创建库存系统 它使用模态和非模态形式 我的问题是 我正在研究change password对话框必须连接到数据库才能覆盖密码字段 我使用的数据库是Microsoft SQL Serve
  • 如何在不下载内容的情况下执行 GET 请求?

    我正在开发一个链接检查器 一般来说我可以执行HEAD请求 但是有些网站似乎禁用了这个动词 所以在失败时我还需要执行GET请求 仔细检查链接是否确实已失效 我使用以下代码作为我的链接测试器 public class ValidateResul
  • 计算从给定日期开始的月份中的第几天?

    我正在努力寻找一种简单有效的解决方案来计算每月的工作日 例如 如果给定日期是第一个星期一Monday 5th March 2018然后我想获取接下来 6 个月每个月第一个星期一的日期 例如 Monday 2nd April 2018 and
  • C#:DataSet.readXML( "filepath" ) 如何处理包含对象内对象内对象的 XML 文件?

    我有一个 xml 文件 格式如下
  • 生成Excel文件错误

    我在经典 ASP 中使用以下代码生成 Excel 文件 代码很简单并且有效 我在 Windows Vista x86 上的 IIS 7 0 下运行代码 两个问题 有一个奇怪的警告框 这是屏幕快照 http i27 tinypic com 2
  • 在 .NET 中记录 StackOverflowException

    最近 我的 NET 应用程序 asp net 网站 中出现了堆栈溢出异常 我之所以知道该异常是因为它出现在我的 EventLog 中 我知道 StackOverflow 异常无法被捕获或处理 但是有没有办法在它杀死您的应用程序之前记录它 我
  • 创建带有部分的选项卡式侧边栏 WPF

    我正在尝试创建一个带有部分的选项卡式侧边栏 如 WPF 中的以下内容 我考虑过几种方法 但是有没有更简单 更优雅的方法呢 方法一 列表框 Using a ListBox并将 SelectedItem 绑定到右侧内容控件所绑定的值 为了区分标
  • 元素属性语法和属性属性语法之间有语义差异吗?

    我认为元素属性语法和属性属性语法在语义上没有太大区别 但是 我发现一定有什么不同 例如 下面的例子只是演示了一个简单的触发器
  • 反序列化嵌套类时不需要 xmlns=''

    我在尝试在服务器上序列化类 将其发送到客户端并在目标上反序列化时遇到问题 在服务器上我有以下两个类 XmlRoot StatusUpdate public class GameStatusUpdate public GameStatusUp
  • 重写某些 .Net Framework 控件的绘制以更改其边框颜色?

    SCENARIO 我正在使用第三方 Windows 视觉主题 当我看到我的应用程序时 它看起来像这样 但是当我使用正常的Aero主题 它看起来到处都有可怕的白色边框 QUESTION 我知道应用程序中使用的配色方案取决于视觉风格 但是 我可
  • DataGridView 中的 C# FormatException

    我创建了一个带有一些列的 DataGridView 订单列仅允许用户输入 int 数字 当我输入 j 例如 时 它会抛出 FormatException 并且我尝试添加 try catch 来解决问题 但它看起来不起作用 private v
  • 如何获取可用系统内存的大小?

    C NET 中是否可以获取系统可用内存的大小 如果是的话怎么办 Use Microsoft VisualBasic Devices ComputerInfo TotalPhysicalMemory http msdn microsoft c
  • 为使用 SSH.NET SshClient.CreateShellStream 执行的命令 (sudo/su) 提供子命令

    我正在尝试使用 Renci SSH NET 从 C Web 应用程序连接到远程 Linux 服务器并执行 shell 脚本 我想一个接一个地运行脚本 但不知道如何运行脚本并读取输出并将其存储在标签中 我已经尝试了下面的代码 但无法一行接一行
  • Android 手机作为 GSM 调制解调器在 PC 上发送/接收短信?

    是否可以将 Android 移动设备用作 PC 上的 GSM 调制解调器 我正在 net下开发应用程序来发送 接收短信等 现在我想通过 USB 将我的 Android 设备连接到我的 PC 并将其用作 GSM 调制解调器来与其通信 这里是参
  • 确保 StreamReader 不会挂起等待数据

    下面的代码读取从 tcp 客户端流读取的所有内容 并且在下一次迭代中它将仅位于 Read 上 我假设正在等待数据 我如何确保它不会在没有任何内容可供读取时返回 我是否必须设置低超时 并在失败时响应异常 或者有更好的办法吗 TcpClient
  • 如何区分用户点击链接和页面自动重定向?

    拥有 C WebBrowser control http msdn microsoft com en us library system windows forms webbrowser aspx在我的 WinForms 应用程序中 并意识
  • C# 中的合并运算符?

    我想我记得看到过类似的东西 三元运算符 http msdn microsoft com en us library ty67wk28 28VS 80 29 aspx在 C 中 它只有两部分 如果变量值不为空 则返回变量值 如果为空 则返回默
  • 从 Excel 应用程序对象中查找位数(32 位/64 位)?

    是否可以从 Microsoft Office Interop Excel ApplicationClass 确定 Excel 是以 32 位还是 64 位运行 Edit该解决方案应该适用于 Excel 2010 和 Excel 2007 此

随机推荐

  • 什么是大 O 表示法? [复制]

    这个问题在这里已经有答案了 可能的重复 大O的简单英语解释 https stackoverflow com questions 487258 plain english explanation of big o 我知道 Big O 表示法用
  • Nancy 未能在自定义约定中找到静态内容

    我已经设置了一个 Nancy 引导程序来从非默认目录路径 它是自托管的 Nancy 提供静态内容 奇怪的是 以下内容适用于自定义视图位置约定 但不适用于 js 或 css 静态内容约定 是的 文件和文件夹都存在于这些位置 我尝试解决此问题的
  • 使用 SBT 进行多版本构建

    我想在 SBT 中实现以下构建 拥有多个 scala 版本 具有多个目标版本 由于库依赖性 让我们以一个外部库为例 它存在于版本1 0 2 0 3 0和Scala 2 92 2 10 2中 我想编译 汇编和发布 MyProject exte
  • DerivedData 中缺少 TestSummeries.plist 文件

    我正在使用 xcode 11 beta 在 iOS 13 0 设备上运行单元测试 测试执行后 它应该在里面生成一个 testummeries plist 文件 Users YourUsername Library Developer Xco
  • 使用 NSURLConnection 进行 POST - 无 JSON

    我正在尝试用 Objective C 编写一个 iPhone 应用程序 我需要使用 NSURLConnection 发布数据 我能找到的每个例子都涉及 JSON 我不需要使用 JSON 我需要做的就是 POST 数据并从 PHP 脚本获取简
  • Java 编译速度 vs Scala 编译速度

    我已经用 Scala 编程有一段时间了 我喜欢它 但令我恼火的一件事是编译程序所需的时间 这似乎是一件小事 但使用 Java 我可以对我的程序进行一些小更改 单击 netbeans 中的运行按钮 然后 BOOM 它正在运行 随着时间的推移
  • 什么是运行时环境?

    有人可以用简单的术语解释一下这意味着什么吗 是指应用程序代码运行的环境 DOS Windows Linux 等 吗 将其与开发环境和构建环境区分开来 您往往会在这里找到层次结构 运行时环境 执行程序所需的一切 但没有工具可以更改它 构建环境
  • 如何P/Invoke“__arglist”函数?

    背景 我用 C 编写了以下函数 extern C declspec dllexport int test const char 我使用 P Invoke 从 C 调用它 DllImport foo bar dll EntryPoint te
  • 使用 GPU PyOpenCL 优化 python 代码的不同方法:内核 GPU/PyOpenCL 内的 extern 函数

    我使用以下命令来分析我的 Python 代码 python2 7 m cProfile o X2 non flat multiprocessing dummy prof X2 non flat py 然后 我可以全局可视化不同贪婪函数的重新
  • 基类中的 Autofac 属性注入

    我正在开发 Windows Phone 8 1 应用程序 并且有一个具有公共属性的基类 public class ViewModelBase public ISomeClass MyProp get set 我的派生类看起来像这样 publ
  • 使用哪种 Micro ORM? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • ViewPager与当前Fragment的通信

    我正在使用 ViewPager http developer android com reference android support v4 view ViewPager html http developer android com r
  • 在 WPF xaml 文件中引用另一个项目中的名称空间

    我引用另一个项目的命名空间 类库 所有模型都驻留在其中 正如相关问题中提到的 他们通过将程序集添加到 xaml 文件中解决了问题 但这对我不起作用 这就是我发帖的原因 我有 2 个项目 WPF 项目本身 类库 包含所有视图模型 WPF项目有
  • 使用pysftp下载文件

    我正在尝试加载 并直接保存在本地 csv文件存储在 FTP 服务器 SFTP 协议 上 我将 Python 与 pysftp 库结合使用 当我检查文件是否存在时 它返回 TRUE 但是当尝试加载文件时 无论我尝试什么 它似乎都是空的 如何将
  • 在特定时间启动和停止 MediaElement

    我正在将应用程序更改为 WPF 它根据定时事件播放音频 视频和图片 我使用了 string MciCommand string Format 播放帧从 0 到 1 2 前 我现在一直在 WPF c 中搜索并尝试解决这个问题 我有一个视频 w
  • 如何为 Wget 设置代理?

    我想使用代理通过 Wget 下载一些东西 HTTP Proxy 127 0 0 1 Port 8080 代理不需要用户名和密码 我怎样才能做到这一点 对于系统的所有用户 通过 etc wgetrc或仅适用于用户 wgetrc file us
  • 实体框架迁移添加列两次

    我正在运行 Entity Freemework Code First 迁移 尝试运行应用程序时 出现错误 列 ID 在规范中出现多次 我在配置中将 AutomaticMigrationsEnabled 设置为 true 因为当我运行项目时
  • highchart 和 .clone() 的问题

    我不明白当我克隆 highchart 时应该如何使用 jQuery clone 我知道 clone 不会链接对象上的方法 因此 高图的克隆看起来是正确的 但您无法再与它交互 所以 我一直在尝试以下操作 function clonage sr
  • 553 5.7.1 :发件人地址被拒绝:不属于用户 [电子邮件受保护]

    在 Rails4 应用程序中 我尝试通过配置 smtp 设置来发送电子邮件 但收到以下错误 553 5 7 1 发件人地址被拒绝 不属于用户所有 电子邮件受保护 cdn cgi l email protection 我正在使用以下设置 co
  • 2022 年 5 月 30 日之后如何通过 Google 使用 MailKit?

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