使用Python和imaplib的GMail-在“所有邮件”中搜索
我正在尝试使用Python和imaplib构建一个电子邮件客户端 目前我的问题是:我想搜索包含所有电子邮件的文件夹。通常称为[GMail]/所有电子邮件 我的问题是,我的GMail是葡萄牙语。因此,在我的例子中,对[Gmail]/Todo o correio(葡萄牙语的等价物)进行选择是可行的,但选择[Gmail/All email]不起作用 这是一个问题,因为我自然希望有一个通用的方式来访问任何Gmail帐户中的所有邮件文件夹,而不考虑国家 当然,我可以遵循一个简单的解决方案,比如搜索所有文件夹并返回聚合结果,但我绝对不想走这条路使用Python和imaplib的GMail-在“所有邮件”中搜索,python,gmail,imaplib,Python,Gmail,Imaplib,我正在尝试使用Python和imaplib构建一个电子邮件客户端 目前我的问题是:我想搜索包含所有电子邮件的文件夹。通常称为[GMail]/所有电子邮件 我的问题是,我的GMail是葡萄牙语。因此,在我的例子中,对[Gmail]/Todo o correio(葡萄牙语的等价物)进行选择是可行的,但选择[Gmail/All email]不起作用 这是一个问题,因为我自然希望有一个通用的方式来访问任何Gmail帐户中的所有邮件文件夹,而不考虑国家 当然,我可以遵循一个简单的解决方案,比如搜索所有文件
这是一个通用的解决方案吗?谢谢你很快就找到了一个解决方案。为了方便起见,将提及 运行mail_instance.list时,将获得文件夹列表,例如:
(\Noselect \HasChildren) "/" "[Gmail]"
(\HasChildren \HasNoChildren \Trash) "/" "[Gmail]/Caixote do Lixo"
(\HasNoChildren \Flagged) "/" "[Gmail]/Com estrela"
(\HasChildren \HasNoChildren \Sent) "/" "[Gmail]/Correio enviado"
(\HasChildren \HasNoChildren \Important) "/" "[Gmail]/Importante"
(\HasChildren \HasNoChildren \Drafts) "/" "[Gmail]/Rascunhos"
(\HasNoChildren \Junk) "/" "[Gmail]/Spam"
(\HasChildren \HasNoChildren \All) "/" "[Gmail]/Todo o correio"
这些是葡萄牙语的
all mail文件夹的名称在字符串中始终包含标记\all,因此只需搜索.list返回的所有文件夹名称中的\all即可
然后将子字符串从[Gmail]的索引中提取到之后第一个双引号的索引中,就可以获得所有邮件文件夹的名称。不久就找到了解决方案。为了方便起见,将提及 运行mail_instance.list时,将获得文件夹列表,例如:
(\Noselect \HasChildren) "/" "[Gmail]"
(\HasChildren \HasNoChildren \Trash) "/" "[Gmail]/Caixote do Lixo"
(\HasNoChildren \Flagged) "/" "[Gmail]/Com estrela"
(\HasChildren \HasNoChildren \Sent) "/" "[Gmail]/Correio enviado"
(\HasChildren \HasNoChildren \Important) "/" "[Gmail]/Importante"
(\HasChildren \HasNoChildren \Drafts) "/" "[Gmail]/Rascunhos"
(\HasNoChildren \Junk) "/" "[Gmail]/Spam"
(\HasChildren \HasNoChildren \All) "/" "[Gmail]/Todo o correio"
这些是葡萄牙语的
all mail文件夹的名称在字符串中始终包含标记\all,因此只需搜索.list返回的所有文件夹名称中的\all即可
然后,只需将[Gmail]索引中的子字符串提取到之后第一个双引号的索引中,就可以获得所有邮件文件夹的名称。请参见以下答案:
谷歌和苹果开发了一个特殊的IMAP命令XLIST来解决这个问题。请参见以下答案:
谷歌和苹果开发了一个特殊的IMAP命令XLIST来解决这个问题