sudo -i
cd /opt/mailcow-dockerized
docker compose exec dovecot-mailcow bash
cd /var/vmail/acmecorp.com/mailboxname/Maildir
# get count of items in inbox older than 30 days
find cur/ -type f | wc -l
# get count of items in inbox older than 30 days
find cur/ -type f -mtime +30 | wc -l
doveadm search -u 'user@acmecorp.com' mailbox INBOX before 30d | wc -l
# move items in inbox older than 30 days to old folder (not visible in imap)
find cur/ -type f -mtime +30 -exec mv {} old/cur/ \;
# user dovecot to delete inbox emails older than 30 days
doveadm expunge -u 'user@acmecorp.com' mailbox INBOX before 30d
# count TM authentication / password reset codes older than 2 days
doveadm search -u 'user@acmecorp.com' mailbox INBOX header Subject "Here's Your Authentication Code" sentbefore 2d | wc -l
doveadm search -u 'user@acmecorp.com' mailbox INBOX header Subject "Your request to reset password" sentbefore 2d | wc -l
doveadm search -u 'user@acmecorp.com' mailbox INBOX header Subject "Your Ticketmaster password has been updated" sentbefore 2d | wc -l
# delete TM authentication / password reset codes older than 2 days
doveadm expunge -u 'user@acmecorp.com' mailbox INBOX header Subject "Here's Your Authentication Code" sentbefore 2d | wc -l
doveadm expunge -u 'user@acmecorp.com' mailbox INBOX header Subject "Your request to reset password" sentbefore 2d | wc -l
doveadm expunge -u 'user@acmecorp.com' mailbox INBOX header Subject "Your Ticketmaster password has been updated" sentbefore 2d | wc -lTo schedule for 4:30 a.m.:
sudo -i nano /opt/mailcow-cleanup.sh
Paste the commands and then save and exit:
#!/bin/bash CONTAINER_ID=$(docker ps -qf name=dovecot-mailcow) docker exec $CONTAINER_ID doveadm expunge -u 'user@acmecorp.com' mailbox INBOX header Subject "Here's Your Authentication Code" sentbefore 2d docker exec $CONTAINER_ID doveadm expunge -u 'user@acmecorp.com' mailbox INBOX header Subject "Your request to reset password" sentbefore 2d docker exec $CONTAINER_ID doveadm expunge -u 'user@acmecorp.com' mailbox INBOX header Subject "Your Ticketmaster password has been updated" sentbefore 2d docker exec $CONTAINER_ID doveadm expunge -u 'user@acmecorp.com' mailbox INBOX header from "SeatGeek" sentbefore 2d docker exec $CONTAINER_ID doveadm expunge -u 'user@acmecorp.com' mailbox INBOX sentbefore 30d NOT subject "You got tickets" NOT subject "You successfully transferred" NOT from "axs.com"
Make script executable, and edit crontab:
chmod +x /opt/mailcow-cleanup.sh crontab -e
Paste this line, then save and exit.
30 4 * * * /opt/mailcow-cleanup.sh >> /var/log/mailcow-cleanup.log 2>&1
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article