我有一个使用 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)'])
因此创建文件夹失败,因为已经存在同名文件夹(只是大小写不同),但复制失败,因为显式文件夹不存在。
是否有一些聪明的方法可以找出现有文件夹的正确大小写,以便可以毫无问题地移动消息?
注意:这并不像强制所有标签为小写那样简单。用户使用电子邮件客户端连接到帐户,并且有时手动创建文件夹,使用当时对他们有意义的任何大小写。