我已经使用 sieve 来筛选收到的邮件。我还想使用 sieve 来筛选在服务器上的邮箱之间移动的已发送邮件(针对同一个帐户)。
例如。我有十年或二十年的邮件历史记录。许多邮件客户端在处理这种大小的邮箱时会遇到麻烦。我想将其拆分为年/月。我知道 Thunderbird 可以自动执行此操作,但许多其他客户端无法执行此操作。具体来说,我不知道有任何 iOS 邮件客户端可以做到这一点。无论如何,我想将进入 Archives 邮箱的任何消息移动到 Arthives// 邮箱中,以便进一步过滤。
我使用 Dovecot 2 作为 IMAP 服务器。我该怎么做?
答案1
触发 IMAP 命令的操作是 IMAPSieve 扩展的主要应用之一,如 RFC6785 中提出并在 Dovecot 2.2.24+ 中实现。您需要执行的操作大致如下:
- 添加
imap_sieve
到您的鸽舍mail_plugins
- 添加
sieve_imapsieve
到您的鸽舍sieve_plugins
- 添加过滤器
imapsieve_mailbox1_before
并过滤 IMAP 操作imapsieve_mailbox1_causes
(COPY
) - 按邮箱添加过滤器,这样您只能重定向来自特定文件夹的消息(我猜测:所有具有按日期范围划分的子文件夹的文件夹)
- 在 IMAP 触发的脚本中使用
fileinto
将邮件移动到与用户移动/复制到的文件夹不同的文件夹
特殊情况/需要额外考虑:
- IMAP 附加
- 存档文件夹拆分逻辑是否在收到的邮件和手动移动的邮件之间共享?可以共享脚本,但这样做可能不值得增加脚本的复杂性