Python 处理IMAP邮箱名称区分大小写

Python 处理IMAP邮箱名称区分大小写,python,imap,imaplib,gmail-imap,Python,Imap,Imaplib,Gmail Imap,我有一个使用imaplib的python脚本,它连接到gmail帐户,并根据电子邮件地址中的“+”标记对电子邮件进行排序。例如:发送到myaccount+root.foo的电子邮件。bar@gmail.com移动到root\foo\bar 我的逻辑如下:提取标签->尝试创建文件夹->将邮件复制到文件夹 在某些情况下,电子邮件会带有相同的标签,但大小写不同。myaccount+root.FOO。BAR@gmail.com,并导致此输出: #Attempting to creating folder

我有一个使用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)'])
因此它无法创建文件夹,因为已经存在同名的文件夹(只是大小写不同),但复制失败,因为显式文件夹不存在

是否有一些聪明的方法,我可以找出正确的情况下,现有的文件夹,使我可以移动邮件没有问题


注意:这并不像强制所有标记都使用小写那么简单。用户通过电子邮件客户端连接到该帐户,然后OCASSIONLY手动使用当时对其有意义的任何大小写创建文件夹。

所以谷歌抱怨该文件夹已经存在,但当您尝试将某些内容移动到其中时,会出现错误吗?太棒了

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


如何访问它取决于您的IMAP客户端库

我的想法完全正确。不过谢谢-我想我将使用list生成当前现有文件夹的字典,并使用tags.lower()作为键。我将在实现解决方案后发布它。