我有一个 IMAP 文件夹,里面有 64k 封电子邮件。我想按年份归档这些。我该怎么办呢?
答案1
可能最简单的方法是使用标记模式功能(绑定到T此处)来标记一年的消息,然后使用标记前缀保存消息(;s此处)将它们放入文件夹中。
Mutt 有几种日期模式匹配(不幸的是,所有这些都采用 dd/mm/yyyy 格式的日期)。这mutt 手册的“模式修饰符”小节列出了所有这些,但有用的可能是~d
(发送日期,日期:标头,由发件人指定,因此可欺骗)和~r
(接收日期)。 2018 年收到的消息示例:~r01/01/2018-31/12/2018
如果您通常进行年度存档,那么您可能需要如下行:
save-hook ~r01/01/2019-31/12/2019 =Archives/2019
save-hook ~r01/01/2020-31/12/2020 =Archives/2020
⋮
在你的配置中(不幸的是,我还没有找到一种方法来避免每隔几年添加几行)。
另一种方法是您可以访问 Mutt 之外的 IMAP 服务器。例如,我可以在运行 Dovecot 的 IMAP 服务器上进行 shell 访问(因为我自己运行它),因此可以doeveadm
在年度 cron 作业中使用:
this_year=$(date +%Y)
last_year=$((this_year-1))
#⋮
newbox="Sent/$last_year"
doveadm mailbox create "$newbox" || true
doveadm -v move "$newbox" mailbox 'Sent' SENTBEFORE "$this_year-01-01" SENTSINCE "$last_year-01-01"