在“所有邮件”中使用Python和imaplib搜索的GMail

2024-09-30 18:34:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用Python和imaplib构建一个电子邮件客户端。在

目前我的问题是:我想搜索包含所有电子邮件的文件夹。通常称为“[GMail]/所有电子邮件”。在

我的问题是,我的GMail是土生土长的葡萄牙语。因此,在我的例子中,选择“[Gmail]/Todo o correio”(葡萄牙语中的等价物)可以起作用,但是选择“[Gmail/All email”就不行了。在

这是一个问题,因为自然我想要一个通用的方式来访问我的“所有邮件”文件夹在任何Gmail帐户,无论国家。在

当然,我可以遵循一个简单的解决方案,比如搜索所有文件夹并返回聚合结果,但我绝对不想走这条路。在

这是通用的解决方法吗?谢谢你


Tags: 文件夹客户端电子邮件email方式邮件帐户all
2条回答

看到这个答案:https://stackoverflow.com/a/3846248/2131094

“谷歌和苹果开发了一个特殊的IMAP命令XLIST来解决这个问题。”

很快就找到了解决办法。为了方便我会提出来的。在

当你运行邮件时_实例.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]”索引中的子字符串提取到后面第一个双引号的索引中,就可以得到“all mail”文件夹名。在

相关问题 更多 >