Email
從 Maildir 中刪除舊電子郵件
我目前正在嘗試弄清楚如何刪除 Debian 伺服器上 Maildir 安裝的一個文件夾中的舊電子郵件。基本上我想要做的是每天執行一個 cron 作業,以便檢查 Maildir 中的特定文件夾是否有舊電子郵件,如果它們超過設定的天數,則將其刪除。
有沒有一種簡單的方法可以按日期過濾來自 Maildir 的電子郵件,或者我必須將每封電子郵件作為文本閱讀,查找時間戳,轉換它,減去提到的天數,然後將其與目前的天數進行比較日期?
如果那裡已經有更好的輪子,我不想發明輪子,所以如果有人可以幫助我做這件事,我會很高興。
謝謝!
**注意:**我正在使用帶有 Postfix 2.9.6 和 Dovecot 2.1.7 的 Debian 7.8
既然你有 dovecot,你可以用 doveadm(1) 做到這一點。
例如刪除使用者在 30 天之前保存在垃圾箱文件夾中的郵件:
doveadm expunge mailbox Trash savedbefore 30d -u <user>
您可以為所有使用者使用 -A 標誌,如果您想首先檢查匹配的郵件,請使用搜尋/獲取命令 - 請參閱 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