Retention does not delete all messages that match the query all at once as this would overwhelm our servers and crash the account. Instead, it deletes a small range of messages every few hours as long as the account is active.
- Every two hours, a process kicks off to enforce the retention policy on all active accounts.
- An "active account" is any account that is either accessed by the user or receives an email message.
- Once an account is active, it remains active as long as it is being used. When sitting idle, the account becomes inactive after three hours.
- The retention process does not delete email all at once. Instead, it deletes the messages in batches, with one batch being deleted each time the process runs.
- The date range selected for each batch depends on the number of messages in the mailbox.
- Since the mail retention process kicks off every two hours, a user account is guaranteed to have the policy enforced if it is active at any point in the day.
- Every time this process runs, it looks for mail matching the specified query that is older than the time frame specified. The process will work its way backward in time, starting from the most recent mail. So, if the mailbox is particularly large, it may take some time for the process to reach the oldest email in the mailbox.
- Until it does so, more recent messages will not be deleted, so users may notice that messages just over the retention time period are not deleted shortly after retention is enabled. The solution is to wait until processing has completed, at which point the process will start over at the newest messages that have crossed the retention period.
- Once the mail is deleted, it is immediately inaccessible by the user or admin, and is deleted at Google from all active servers.
Now that the older mail has been reached and processed, future retention should take significantly less time, as the mailbox has only a few emails to process per day.
How Retention works:
How to set retention rules: