---
name: "cyrus-ipurge"
section: "8"
platform: "linux"
package: "cyrus-common"
version: "3.10.2-1+deb13u2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/cyrus-ipurge"
---

# cyrus-ipurge(8)

Cyrus IMAP documentation Delete mail from IMAP mailbox or partition based on age or size

## NAME

ipurge - Cyrus IMAP documentation

Delete mail from IMAP mailbox or partition based on age or size

## SYNOPSIS

```
ipurge [ -f ] [ -C config-file ] [ -x ] [ -M ] [ -X ] [ -i ] [ -s ] [ -o ] [ -n ] [ -v ]
        [ -d days | -b bytes | -k Kbytes | -m Mbytes ]
        [ mailbox-pattern... ]
```

## DESCRIPTION

*ipurge deletes messages from the mailbox(es) specified by* *Imailbox-pattern that are older or larger than specified by the* **-d***,* **-b***,* **-k** *or* **-m** *options.  If no mailbox-pattern is* *given, ipurge works on all mailboxes.  If the* **-x** *option is given,* *the message age and size MUST match exactly those specified by* **-d***,* **-b***,* **-k** *or* **-m***.  The are no default values, and at least one* *of* **-d***,* **-b***,* **-k** *or* **-m** *MUST be specified.*

*Ipurge by default only deletes mail below shared folders, which means* *that mails in mailbox(es) below INBOX.\* and user.\* stay untouched. Use* *the option* **-f** *to also delete mail in mailbox(es) below these* *folders. Use the* **-M** *option to not recurse into the mailboxes.*

*ipurge reads its configuration options out of the [imapd.conf(5)](/imapd.conf/5.md) file unless specified otherwise by* **-C***.*

## OPTIONS

- **-C config-file**

  *Use the specified configuration file config-file rather than the default [imapd.conf(5)](/imapd.conf/5.md).*

- **-f, --include-user-mailboxes**

  *Force ipurge to examine mailboxes below INBOX.\* and user.\*.*

- **-d days, --days=days**

  *Age of message in days.*

- **-b bytes, --bytes=bytes**

  *Size of message in bytes.*

- **-k Kbytes, --kbytes=Kbytes**

  *Size of message in Kbytes (2^10 bytes).*

- **-m Mbytes, --mbytes=Mbytes**

  *Size of message in Mbytes (2^20 bytes).*

- **-x, --exact-match**

  *Perform an exact match on age or size (instead of older or larger).*

- **-X, --delivery-time**

  *Use delivery time instead of Date: header for date matches.*

- **-i, --invert-match**

  *Invert match logic: -x means not equal, date is for newer, size is* *for smaller.*

- **-s, --skip-flagged**

  *Skip over messages that have the \\Flagged flag set.*

- **-o, --only-deleted**

  *Only purge messages that have the \\Deleted flag set.*

- **-n, --dry-run**

  *Only print messages that would be deleted (dry run).*

- **-v, --verbose**

  *Enable verbose output/logging.*

## EXAMPLES

*\[NB: Examples needed\]*

## FILES

*/etc/imapd.conf*

## SEE ALSO

*[imapd.conf(5)](/imapd.conf/5.md)*

## AUTHOR

*The Cyrus Team, Nic Bernstein (Onlight), Jeroen van Meeuwen (Kolab Systems)*

## COPYRIGHT

*1993–2025, The Cyrus Team*
