我目前正试图弄清楚如何删除Debian服务器上Maildir安装的一个文件夹中的旧电子邮件。 基本上我想要做的是每天运行一个cron工作,以便检查Maildir中的特定文件夹中的旧电子邮件,如果它们超过设定的天数,则删除它们。
有一个简单的方法来过滤从Maildir的电子邮件的date,或者我必须阅读每个电子邮件为文本,寻找时间戳,转换它,减去提到的天数,然后将其与当前比较date?
如果已经有更好的车轮,我不想发明车轮,所以如果有人能够帮助我做到这一点,我会很高兴。
谢谢!
注:我正在使用Debian 7.8与Postfix 2.9.6和Dovecot 2.1.7
既然你有鸽子,你可以用doveadm(1)做到这一点。
例如,在30天之前删除保存在“垃圾箱”文件夹中的邮件:
doveadm expunge mailbox Trash savedbefore 30d -u <user>
您可以为所有用户使用-A标志,如果您想首先检查匹配的邮件,请使用search/获取命令 – 请参阅doveadm-search(1):
doveadm search mailbox Trash savedbefore 30d -u <user> | while read guid uid; do doveadm fetch -u <user> body mailbox-guid $guid uid $uid > msg.$uid done