我不能用Python在Gmail中搜索发送的电子邮件

我不能用Python在Gmail中搜索发送的电子邮件,python,gmail,imaplib,Python,Gmail,Imaplib,我试图在发送的邮件中搜索邮件,实际上我两者都关心,但我只收到传入的邮件。 目前我有 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') 当我将收件箱替换为“全部”或“已发送”时,我会收到: 命令搜索在身份验证状态下非法,仅在选定状态下允许

我试图在发送的邮件中搜索邮件,实际上我两者都关心,但我只收到传入的邮件。 目前我有

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')
当我将收件箱替换为“全部”或“已发送”时,我会收到:
命令搜索在身份验证状态下非法,仅在选定状态下允许使用。您需要使用:imap\u conn。选择“[Gmail]/Sent Mail”

import imaplib
obj = imaplib.IMAP4_SSL('imap.gmail.com',993)
obj.login('userid','password')
obj.select('Sent')  # <-- response like ('OK', ['74']) --> total no. of mail in sent folder
obj.uid('SEARCH',None,'All') # <-- Returns the list of uids of the sent folder.

我只是想为看到这一点的未来用户指出这一点。它隐藏在评论中。

伙计,错误信息太误导人了。它真正的意思是,您试图选择一个无效的文件夹名称,因此搜索操作失败

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

使用ImapClient

使用imaplib


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

需要使用print imap\u conn.list。标记是基于语言的。例如,西班牙语中的[Gmail]/Todos

请确保在字符串中使用额外的引号:

imap_conn.select('"[Gmail]/Sent Mail"')  

这对我来说很有效。

它对我来说在Gmail上不起作用,所以我使用了:imap_conn.选择“[Gmail]/Sent Mail”,“Sent”从“imap/Sent”文件夹中选择邮件,而不是从“Gmail/Sent Mail”文件夹中选择邮件。如果您在Thunderbird中配置您的gmail帐户,它将自动创建“Imap/Sent”文件夹,将已发送邮件的副本放入该文件夹。如果你想从“Gmail/Sent Mail”文件夹中选择邮件,那么你的代码就可以了。提醒一下:文件夹的名称似乎会随着语言的不同而变化。例如,对于我来说,[Gmail]/Sent Mail不起作用,但是[Gmail]/L&AOQ Hetteyt viestit起作用,反之亦然,如果我将Gmail的显示语言从芬兰语改为英语。啊哈,额外的引号!非常感谢。
import imaplib
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('myusername@gmail.com', 'mypassword')
print(mail.list())
imap_conn.select('"[Gmail]/Sent Mail"')