2

我有一个使用 imaplib 的 python 脚本,它连接到 gmail 帐户并根据电子邮件地址中的“+”标签对电子邮件进行排序。例如:发送到 myaccount+root.foo.bar@gmail.com 的电子邮件被移动到 root\foo\bar。

我的逻辑如下:提取标签->尝试创建文件夹->将消息复制到文件夹。

有时,一封电子邮件会带有相同的标签,但大小写不同。例如,myaccount+root.FOO.BAR@gmail.com 并导致以下输出:

#Attempting to creating folder 'root/FOO/BAR'
('NO', ['[ALREADYEXISTS] Folder name conflicts with existing folder name. (Failure)'])
#Copying message to folder 'root/FOO/BAR'
('NO', ['[TRYCREATE] No folder root/FOO/BAR (Failure)'])

因此创建文件夹失败,因为已经存在同名文件夹(只是大小写不同),但复制失败,因为显式文件夹不存在。

是否有一些聪明的方法可以找出现有文件夹的正确大小写,以便可以毫无问题地移动消息?

注意:这并不像强制所有标签为小写那样简单。用户使用电子邮件客户端连接到帐户,并且有时手动创建文件夹,使用当时对他们有意义的任何大小写。

4

1 回答 1

2

所以谷歌抱怨该文件夹已经存在,但是当您尝试将某些内容移入其中时会出错?了不起。

IMAP 有一个“LIST”命令来列出可用的邮箱(文件夹):

https://www.rfc-editor.org/rfc/rfc3501#section-6.3.8

如何访问它取决于您的 IMAP 客户端库。 这里有几个例子

于 2011-06-10T16:16:27.590 回答