我有一个使用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)'])
因此无法创建文件夹,因为已存在具有相同名称的文件夹(只是具有不同的大小写),但由于显式文件夹不存在,因此副本失败。
是否有一些聪明的方法可以找出现有文件夹的正确位置,以便我可以毫无问题地移动邮件?
注意:这并不像将所有标记强制为小写一样简单。用户使用电子邮件客户端连接到该帐户,并且可以手动创建具有当时对他们有意义的文件夹。
答案 0 :(得分:2)
因此Google抱怨该文件夹已经存在,但是当您尝试将某个内容移入其中时会出错?了不起。
IMAP有一个“LIST”命令列出可用的邮箱(文件夹):
http://tools.ietf.org/html/rfc3501#section-6.3.8
如何访问它取决于您的IMAP客户端库。 Here are a couple of examples