我无法使用Python在Gmail中搜索已发送的电子邮件 [英] I cannot search sent emails in Gmail with Python

查看:842
本文介绍了我无法使用Python在Gmail中搜索已发送的电子邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在发送的邮件中搜索邮件(实际上我都喜欢)但我只收到邮件。
暂时我有

  imap_conn.select()
str_after = after.strftime(' %d-%b-%Y')
typ,msg_ids = imap_conn.search('UTF-8','SINCE',str_after)

结果与此相同

  imap_conn.select('INBOX' )

当我用ALL或SENT替换INBOX时,我得到:
命令AUTH,只允许在状态SELECTED

解决方案

Man,错误信息太具有误导性。真正的意思是,你试图选择一个无效的文件夹名称,因此搜索操作失败。



要验证/检查当前有效的文件夹/标签,请执行以下操作:

使用ImapClient

 来自imapclient导入IMAPClient 
##连接,登录并选择INBOX
imap_conn = IMAPClient('imap.gmail.com',use_uid = True,ssl = ssl)
imap_conn.login(USERNAME,PASSWORD )

print(imap_conn.list_folders())

使用imaplib

 导入imaplib 
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('myusername@gmail.com','mypassword')
print(mail.list())

在我看到它期望的文件夹名称后,一切都很顺利。


I am trying to search for messages in the Sent (actually i care for both) but I only get incoming messages. For the time being i have

imap_conn.select()
str_after = after.strftime('%d-%b-%Y')
typ, msg_ids = imap_conn.search('UTF-8','SINCE',str_after)

Which gives equivalent results with this

imap_conn.select('INBOX')

When I replace INBOX with ALL or SENT I get: command SEARCH illegal in state AUTH, only allowed in states SELECTED

解决方案

Man, the error message is so misleading. What it's really saying is that you have tried to select an invalid folder name hence the search operation fails.

To verify/check the current valid folders/labels do something like:

Using ImapClient

from imapclient import IMAPClient
## Connect, login and select the INBOX
imap_conn = IMAPClient('imap.gmail.com', use_uid=True, ssl=ssl)
imap_conn.login(USERNAME, PASSWORD)

print(imap_conn.list_folders())

Using imaplib

import imaplib
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('myusername@gmail.com', 'mypassword')
print(mail.list())

After I could see what folder names it was expecting, all was well.

这篇关于我无法使用Python在Gmail中搜索已发送的电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆