我有看起来像这样的代码
import imapclient
archive_folder = "Archive"
aggregate_reports_folder = "{0}/Aggregate".format(archive_folder)
forensic_reports_folder = "{0}/Forensic".format(archive_folder)
server = imapclient.IMAPClient("example.com", use_uid=True)
server.login("user", "foobar")
if not server.folder_exists(archive_folder):
server.create_folder(archive_folder)
if not server.folder_exists(aggregate_reports_folder):
server.create_folder(aggregate_reports_folder)
if not server.folder_exists(forensic_reports_folder):
server.create_folder(forensic_reports_folder)
它在Office 365 / Exchange上工作正常,但在dovecot上则不能。在鸽舍上会导致错误:
错误:创建失败:[CANNOT]无效的邮箱名称:名称不能包含'/'字符
我尝试删除文件夹名称的/subfolder
部分,然后先运行select_folder(archive_folder)
,但这只是在与存档相同的级别创建文件夹。但是,Thunderbird可以毫无问题地创建子文件夹。
如何以适用于所有IMAP服务器的方式使用imapclient创建IMAP子文件夹?另外,如何将邮件移至那些子文件夹?
答案 0 :(得分:1)
我在鸽子mailing list中找到了答案。
当前Dovecot仅支持Maildir ++目录布局,即 指定“。”字符用作文件系统中的分隔符。
因此,在构建子文件夹路径时,请使用.
作为分隔符,而不要使用/
作为分隔符。