Email

從 Maildir 中刪除舊電子郵件

  • August 9, 2015

我目前正在嘗試弄清楚如何刪除 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

引用自:https://serverfault.com/questions/712878