如何从桌面应用程序检查 Gmail 是否有新邮件?

How to check Gmail for new mail from desktop app?

我对 C# 完全陌生。

我想编写简单的托盘应用程序来检查邮箱中是否有新邮件。不需要额外的功能。除了可能为特定帐户打开浏览器。

到目前为止,我尝试了 TcpClient() 和原始 IMAP 命令,但看起来我不被允许:

* OK Gimap ready for requests from 80.235.87.101 k8mb64099440een
* NO [WEBALERT https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbvKabQnjALUA3Xdbjo28....Fgf4FIEg_33cqJJiB96NNrV8F_0MrM5A] Web login required.
tag NO [ALERT] Please log in via your web browser: http://support.google.com/mail/accounts/bin/answer.py?answer=78754 (Failure)

然后,我转到 Google 开发者控制台,创建了一个项目,启用了 Gmail API。但是,当我看到配额限制的那一刻,我开始问自己——如果有操作配额,我将如何发布一个开源应用程序?

那么第一个问题:Gmail API 是否适用于企业 google 帐户?

其次,是否有任何示例说明我如何才能授权检查我的私人电子邮件以查看是否有新消息?

谢谢。

关于配额问题

默认配额限制相当高,主要是为了保护 Google 基础设施。可以通过提出请求来提出。 IMAP 有类似的限制,只是没有明确记录。

如果您使用带有 history.list() 的 Gmail API 来轮询更新,它会比使用 IMAP efficient/cheaper 多。应该可以轻松支持该应用的数十万用户。

也就是说,用于已安装应用程序(Gmail API 或 IMAP 或任何其他应用程序)的 oauth2 有一个明显的缺陷,即安装该应用程序的任何人基本上都可以拨打电话并占用配额。 Thunderbird 和其他开源软件(甚至是那些使用 IMAP 和 oauth2 的软件)也有类似的问题...

第一题

是的,Gmail API 适用于企业 google 帐户(Apps for Work)以及普通用户@gmail.com 帐户。

第二题

有多种语言的快速入门,包括 c# https://developers.google.com/gmail/api/quickstart/ 这应该可以帮助您完成基础知识(授权,设置 API)。如果 C# 文档中没有广泛介绍某些内容,您可能需要查看 java/python 快速入门。要检查邮箱更新,请参阅本指南: https://developers.google.com/gmail/api/guides/sync

  • 要通过代码访问 Gmail 详细信息,您需要通过在您的帐户中启用 pop3 或 IMAP 设置来允许访问电子邮件 Screen shot for enabling POP# or IMAP settings in Gmail account

  • 为 Gmail 帐户中安全性较低的应用程序开启访问权限。

    通过点击以下 link

  • 为安全性较低的应用启用

https://support.google.com/accounts/answer/6010255?hl=en-GB

然后,您将不会收到诸如“NO [WEBALERT ....]”之类的错误