处理IMAP邮箱名称大小写敏感性



我有一个使用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)'])

因此,它无法创建文件夹,因为已经存在具有相同名称的文件夹(只是大小写不同),但复制失败,因为显式文件夹不存在。

有没有什么聪明的方法可以让我找出现有文件夹的正确大小写,这样我就可以毫无问题地移动邮件?

注意:这并不像强制所有标签都小写那么容易。用户通过电子邮件客户端连接到帐户,并在本地手动制作文件夹,无论大小写在当时对他们有意义。

所以谷歌抱怨文件夹已经存在,但当你试图将某个东西移动到其中时却出现了错误?极好的

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

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

如何访问取决于IMAP客户端库。下面是几个例子。

最新更新