# Mails älter als X Tage aus dem Trash löschen

Normalerweise werden Mails, die in den Papierkorb (bei Dovecot üblicherweise .Trash) verschoben wurden, nicht automatisch gelöscht. Über die Zeit sammelt sich dort deshalb ziemlich viel Müll an.

Mit dem folgenden Job lässt sich dort bequem aufräumen:

<div id="bkmrk-%23-entweder-f%C3%BCr-alle%3A"><div>```
# entweder für alle:
doveadm expunge -A mailbox Trash savedbefore 30d

# oder nur für eine einzelne Mailbox:
doveadm expunge -u user@domain.de mailbox Trash savedbefore 30d
```

</div></div>Wenn man `expunge` durch `search` ersetzt lässt sich vorher testen, ob wirklich nur die Mails gelöscht werden, die gelöscht werden sollen.

Um es für bequem für mehrere User gleichzeitig zu erledigen habe ich dieses kleine Script gebaut:

<div id="bkmrk-%23%21%2Fbin%2Fbash-%C2%A0-days%3D3">```
<span class="co0">#!/bin/bash</span>
 
<span class="re2">DAYS</span>=<span class="nu0">30</span>
<span class="re2">USERLIST</span>=<span class="st0">"user1@domain.de user2@domain.de user3@domain.de"</span>
 
<span class="kw1">for</span> user <span class="kw1">in</span> <span class="co1">${USERLIST}</span>; <span class="kw1">do</span>
  <span class="co0">#doveadm search -u ${user} mailbox Trash savedbefore ${DAYS}d</span>
  doveadm expunge <span class="re5">-u</span> <span class="co1">${user}</span> mailbox Trash savedbefore <span class="co1">${DAYS}</span>d
<span class="kw1">done</span>
```

</div>