如何从桌面应用程序检查Gmail中的新邮件?

时间:2015-02-11 10:18:46

标签: c# gmail-imap gmail-api

我是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 Developer Console,创建了一个项目,启用了Gmail API。但是,当我看到配额限制时,我开始问自己 - 如果有操作配额,我将如何发布一个开源应用程序?

所以第一个问题:商业谷歌帐户的Gmail API是什么?

其次,是否有任何关于如何验证我的私人电子邮件以查看是否有新消息的示例?

谢谢。

2 个答案:

答案 0 :(得分:2)

关于配额问题

默认配额限制相当高,主要是为了保护Google基础架构。可以通过提交请求来筹集它们。 IMAP有类似的限制,但没有明确记录。

如果您使用带有history.list()的Gmail API来轮询更新,那么它将比使用IMAP更高效/更便宜。应该可以轻松支持上述应用程序的数十万用户。

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

第一个问题

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

第二个问题

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

答案 1 :(得分:0)

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

然后,你不会得到诸如“NO [WEBALERT ....]”

之类的错误