我在访问Gmail帐户时遇到问题。目前,我正在使用用python 2.7+编写的this库来登录和阅读Gmail邮件。要使用该库,我必须启用Google'不安全应用'。这个lib一切正常。
现在,我正在转向python 3+,我不能再使用lib了。每当我导入lib时,它都会抛出以下错误:
import gmail
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.6/site-packages/gmail-0.0.5-py3.6.egg/gmail/__init__.py", line 16, in <module>
File "/usr/local/lib/python3.6/site-packages/gmail-0.0.5-py3.6.egg/gmail/gmail.py", line 5, in <module>
ModuleNotFoundError: No module named 'utf'
我试图通过在python 3+中查找'utf'的替换模块来克服这个问题,但我无法弄清楚它是什么。我该如何解决这个问题?
另一个问题是我尝试了Google提供的官方python库。 Here是本教程的链接。我成功完成了快速启动示例,但脚本打开了我的浏览器,我不得不允许通过浏览器进行访问。事实上,我只是想创建一个cronjob来定期在没有UI的服务器上运行我的脚本。谷歌允许吗?
非常感谢。
答案 0 :(得分:2)
适用于python 3的Gmail官方API 并且有很多使用它的指南,例如:
https://github.com/abhishekchhibber/Gmail-Api-through-Python
但如果你觉得这太复杂了(我这样做),你可能想要从Gmail设置面板中使用POP3或IMAP激活访问权限。
然后使用poplib或imaplib。
示例:https://docs.python.org/3/library/poplib.html#pop3-example
这通常更容易,更便携,并且使用已在默认python安装中找到的包。
编辑:
您使用的库使用IMAP访问,而不是oauth。
还要回答你的“UTF”问题:默认情况下,python 3中的每个字符串都是UTF8,如果你想解码原始数据,你应该使用'mystring'.decode('utf-7')等。
编辑2:看起来有人已经完成了工作:https://github.com/charlierguo/gmail/pull/48
好的,我刚看到the instructions中的问题:
所以,我想你唯一的选择就是坚持使用POP3 / IMAP(你的程序已在使用)。