Mailbox MaintenanceUser manual
All manuals
Utility · Microsoft 365 admin

Mailbox Maintenance

CCI.NET Mailbox Maintenance is a PowerShell desktop tool for Microsoft 365 administrators. It runs bulk mail operations, mailbox audits, duplicate clean-up and security investigations against Exchange Online through Microsoft Graph. This manual covers setup, every tab, and troubleshooting.

Version Current releaseUpdated October 2026Windows · Microsoft Graph

01Overview

CCI.NET Mailbox Maintenance is a PowerShell GUI tool for Microsoft 365 administrators. It performs bulk mail operations, security audits, duplicate detection and forensic investigations against Exchange Online mailboxes using the Microsoft Graph API. All API calls go directly between the tool and Microsoft. No data passes through any third-party server.

Features at a glance

FeatureDescription
DeletePermanently remove email from any folder. 8 parallel threads, about 25 seconds per 1,000 items.
Move to MailboxMove email to another mailbox, preserving original timestamps via MAPI extended properties.
Copy to MailboxCopy email to another mailbox, leaving the originals intact.
Archive ALL MailMove every folder in a mailbox to a destination in one operation.
Search & DeleteKQL-based search and permanent delete. Re-searches until 0 results remain.
Duplicate FinderFind and remove duplicate email, contacts and calendar events. Dry run by default.
Folder Size ReportAll folders with item counts, as a sortable HTML report.
Hold Status CheckLitigation and retention hold indicators.
Forward & Delegate AuditInbox rules, hidden MAPI rules, admin SMTP forwarding and calendar delegates.
Company-Wide Bulk AuditScan every mailbox in the tenant for forwarding, holds or folder counts.
Email Timeline AuditComplete email activity for a mailbox in a date window. Three source modes.
OAuth App AuditAll OAuth2 apps and their permissions. Flags risky scopes.
External Forwarding DomainsTenant-wide forwarding destinations grouped by domain.
Attachment InventoryAll attachments in a date window. Flags dangerous file types.
Sign-in Anomaly ReportEntra ID sign-in log with risk flagging.
Permission SnapshotAll calendar delegates and mailbox sharing permissions.
Suspicious Rule DetectorScores every inbox rule for risk. Detects hidden MAPI rules.
Note

This is an IT administrator tool. All operations are logged to a CSV file. Destructive operations require confirmation before they run.

Requirements

  • A Windows PC with PowerShell, where you can run the script.
  • A Microsoft 365 tenant and an administrator who can create an Entra ID app registration and grant admin consent.
  • Optional licensing for some features: Microsoft Defender for Office 365 Plan 1 or 2 (Message Trace) and Entra ID P1 or P2 (Sign-in Anomaly Report).

02Entra app registration

The tool authenticates through an Entra ID app registration using client credentials (app-only authentication). This is a one-time setup per tenant.

Required permissions

PermissionTypeRequired for
Mail.ReadWriteMicrosoft Graph, ApplicationAll mail operations and all Audit & Reports features
User.ReadBasic.AllMicrosoft Graph, ApplicationCompany-Wide Audit, Forwarding Report, Permission Snapshot
Application.Read.AllMicrosoft Graph, ApplicationOAuth App Audit
AuditLog.Read.AllMicrosoft Graph, ApplicationSign-in Anomaly Report
ThreatHunting.Read.AllMicrosoft Graph, ApplicationMessage Trace (requires Defender for Office 365 Plan 1 or 2)
Caution

All permissions require admin consent. Without it, every API call returns 403 Forbidden.

Tip

Mail.ReadWrite is the only permission needed for all mail operations and single-mailbox audits. Add the others as you need them.

Create the app registration

  1. Open the Entra admin center at https://entra.microsoft.com.
  2. Go to Identity → Applications → App registrations → New registration.
  3. Fill in the form:
    FieldValue
    NameCCI-MailboxMaintenance
    Supported account typesAccounts in this organizational directory only
    Redirect URILeave blank
  4. Click Register.

Grant API permissions

  1. Click API permissions → Add a permission → Microsoft Graph → Application permissions.
  2. Search for and add each permission you need from the table above.
  3. Click Grant admin consent for [Tenant].
Caution

Every permission must show a green checkmark after you grant admin consent.

Create a client secret

  1. Click Certificates & secrets → New client secret.
  2. Enter a description, set a 24-month expiry and click Add.
  3. Copy the secret Value immediately.
Important

The secret Value is shown only once. If you navigate away before copying it, it is gone and you must create a new secret.

Your three credential values

ValueWhere to find it
Tenant IDApp Overview page → Directory (tenant) ID
Client IDApp Overview page → Application (client) ID
Client SecretThe Value you copied when creating the secret

03Installation and first launch

  1. Save the script to C:\scripts\CCI_MailboxMaintenance.ps1.
  2. Unblock the file and set the execution policy. Run these once, as Administrator:
    Unblock-File -Path C:\scripts\CCI_MailboxMaintenance.ps1
    Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
  3. Launch the tool from C:\scripts:
    .\CCI_MailboxMaintenance.ps1
  4. Go to the Connection tab, enter or load your credentials and click Connect & Test. A green Connected message confirms success.
Note

The ? Help button at the top right of the title bar opens the PDF guide. For it to work, place CCI_MailboxMaintenance_Guide.pdf in the same folder as the script (C:\scripts\).

04Credential profiles

The profile bar at the top of every window saves tenant credentials under a named profile. Profiles are encrypted with Windows DPAPI and cannot be read outside the user account and machine that saved them.

Profile bar controls

ControlDescription
Saved Profile dropdownLists all saved profiles.
LoadFills Tenant ID, Client ID and Client Secret from the selected profile.
Save As...Prompts for a profile name and saves the current credentials.
DeleteRemoves the selected profile after confirmation.

Typical workflow

  1. First time: paste the Tenant ID, Client ID and Client Secret into the Connection tab.
  2. Click Save As... and name the profile after the organization (for example Fabrikam).
  3. Every later session: select the profile, click Load, then Connect & Test.

Profile security

  • Profiles are stored in C:\scripts\CCI_MailboxMaint_Profiles.json. Tenant ID and Client ID are stored as plain text. The Client Secret is DPAPI-encrypted.
  • A profile copied to another machine or user account will fail to decrypt. This is by design.
  • To revoke access, delete the client secret in Entra. The saved profile then becomes harmless.

05Connection tab

The Connection tab is the first tab in the window. It holds the credential fields, a Quick Start guide and a permission reference. Connect here before using any other tab.

Fields

FieldDescription
Tenant IDThe Directory (tenant) ID from the Entra app Overview page.
Client IDThe Application (client) ID from the Entra app Overview page.
Client SecretThe client secret Value created in Entra. Displayed as asterisks.

Connect & Test

Connect & Test acquires a Bearer token and verifies Graph API access. On success it shows Connected ✓ (token valid until HH:MM:SS).

StatusMeaning
Token lifetime1 hour. Refreshed automatically 3 minutes before expiry during long operations.
Connected ✓Credentials are valid and admin consent is granted.
Connection failedA credential is wrong or admin consent has not been granted. See the Troubleshooting tab.

06Mail Operations tab

The Mail Operations tab is the main action screen. It has three sections: SOURCE, OPERATION and DESTINATION.

SOURCE controls

ControlDescription
MailboxSource mailbox email address.
Multiple Mailboxes (bulk)Check to process multiple mailboxes. Paste addresses one per line or load them from CSV.
FolderThe folder to process. Enter a well-known name or the exact display name.
▾ SelectOpens a folder picker listing every folder in the source mailbox with item counts. Click a folder to fill in the Folder field.
All Mail FoldersProcess every mail folder. Hides the Folder field. Works with Delete, Move, Copy and Archive ALL.
Received BeforeDate picker. Only items received before this date are processed. Defaults to 3 years ago.
All items (no date filter)Ignore the date filter and process every item regardless of age.

Well-known folder names

Short nameFolder
inboxInbox
deleteditemsDeleted Items
sentitemsSent Items
draftsDrafts
junkemailJunk Email / Spam
archiveOnline Archive
outboxOutbox
recoverableitemsdeletionsRecoverable Items / Deletions
Tip

For subfolders not in this list, type the exact display name as shown in Outlook. Use ▾ Select to browse and avoid typos.

Delete (permanent)

Permanently removes matching items. Items do not go to Deleted Items; they are gone immediately. Delete uses 8 parallel threads.

VolumeEstimated time
1,000 items~25 seconds
10,000 items~4 minutes
50,000 items~20 minutes
100,000 items~40 minutes
Important

Delete is permanent and cannot be undone. A confirmation dialog appears before it runs. Check the folder and date filter carefully.

Move to Mailbox

Moves matching items to another mailbox. A cross-mailbox transfer takes three API calls per message: GET from the source, POST to the destination (preserving timestamps via MAPI extended properties), then DELETE the original. The thread count is adjustable.

VolumeEstimated time (3 threads)
1,000 items~5–8 minutes
10,000 items~50–80 minutes
50,000 items~4–7 hours
Note

The Graph API's built-in /move endpoint only works within the same mailbox. Cross-mailbox transfer always requires the three-step GET + POST + DELETE approach.

Note

Throttling responses (HTTP 429) are handled automatically. The tool reads the Retry-After header and waits. No items are skipped.

Caution

Move deletes each original from the source mailbox after it is copied. If you want a safety net, run Copy to Mailbox first to create a backup.

Copy to Mailbox

Works like Move to Mailbox, but the originals stay in the source folder. Use it to create a backup before a destructive operation, or to copy content to a shared mailbox.

Archive ALL Mail

Enumerates every mail folder recursively and moves all contents to the destination mailbox. Calendar, Contacts, Tasks and Notes folders are skipped automatically. Use it for full mailbox offboarding.

Note

With Preserve folder structure checked, Archive ALL recreates the complete source folder hierarchy at the destination.

Search & Delete

Searches for items matching a KQL query and permanently deletes every match. The search repeats until 0 results remain. Example queries:

from:sender@example.com
subject:"Invoice" AND has:attachment
received>=2024-01-01 AND received<2024-06-01
Important

Search & Delete is permanent. Test your KQL query in Outlook on the web before you run it.

DESTINATION panel

Appears automatically for Move, Copy and Archive ALL.

ControlDescription
Dest MailboxTarget mailbox email address.
Dest FolderTarget folder in the destination mailbox. Hidden when Preserve folder structure is checked.
Preserve folder structureCreates matching folders in the destination. When checked together with All Mail Folders and a blank Dest Folder, it recreates the entire source folder tree at the root of the destination mailbox.

Thread count

The Threads spinner (1–8, default 3) controls Move and Copy parallelism. Lower is safer on busy tenants; higher is faster for large operations when traffic is light.

Run, Stop and Clear Log

ButtonDescription
RunStarts the operation. Disabled while it runs.
StopHalts after the current batch. Run again to resume; items already processed won't match again.
Clear LogClears the on-screen log. Does not affect the CSV log on disk.

Status bar

The dark bar at the bottom of the window shows live status:

  • ▶ RUNNING 14m 22s | 250 Moved — Inbox (updates every 3 seconds)
  • ✓ COMPLETE — Elapsed: 2h 14m 33s
  • ⏹ STOPPED — Elapsed: 19m 47s
  • Ready. (idle)

07Audit & Reports tab

Every audit produces an HTML report that opens automatically in your default browser and is saved to C:\scripts\. The CSV log captures all findings.

Single-mailbox audits. Enter a mailbox address in the Mailbox field at the top of the tab, then click the audit you want.

Folder Size Report

Lists every mail folder with its item count and unread count in a sortable HTML table. Folders over 10,000 items are highlighted amber. Run this first, before any bulk operation, to understand the mailbox's volume.

Hold Status Check

Checks the Recoverable Items size as an indicator of litigation or retention hold. For definitive status, use Exchange Online PowerShell:

Get-Mailbox user@example.com | Select LitigationHoldEnabled,RetentionHoldEnabled

Forward & Delegate Audit

AreaWhat is checked
Inbox rulesAll rules with forwardTo, redirectTo or forwardAsAttachmentTo actions.
Hidden MAPI rulesRules invisible in the Outlook interface, detected with an IPM.Rule.Message class filter.
Admin SMTP forwardingforwardingSmtpAddress set by an Exchange administrator.
Calendar delegatesAll calendar permission entries with write or delegate access.
Security

Hidden MAPI rules are a strong indicator of account compromise. Reset the password and revoke sessions (Entra → Revoke sessions) immediately.

Company-Wide Bulk Audit

Scans every licensed mailbox in the tenant. Requires User.ReadBasic.All. Only mailboxes with findings are shown on screen; clean mailboxes are logged to CSV.

Scan modeWhat it does
Forward & Rule ScanChecks every mailbox for forwarding rules, redirect rules, hidden MAPI rules and admin SMTP forwarding.
Hold Status ScanFinds mailboxes with a high Recoverable Items count.
Folder Count SummaryQuick item count per mailbox for capacity reporting.
Note

Large tenants (1,000+ mailboxes) can take 30–90 minutes. Stopping is safe: results are written to CSV continuously.

Email Timeline Audit

Shows the complete email activity for a mailbox in a date window. Choose one of three source modes:

ModeDescription
Mailbox ContentsSearches the folders currently in the mailbox. Fast, and needs only Mail.ReadWrite.
Message TraceQueries Defender EmailEvents and shows everything, including blocked and deleted messages. Requires ThreatHunting.Read.All.
Message Trace ExtendedSame as Message Trace with a longer lookback (up to 90 days). Slower.

Options: Start/End Date, Start/End Time, Timezone (default Pacific Standard Time), Received / Sent / Deleted checkboxes, and All Mail Folders.

Security

For incident response, use Message Trace. It shows everything Exchange processed, including messages that were delivered and then deleted by an attacker.

08Duplicate Finder tab

Scans a mailbox for duplicate email messages, contacts or calendar events. Dry Run is checked by default, so the first run always produces a report only, with nothing deleted.

Important

Always back up Contacts and Calendar to a PST file before a live deletion: Outlook → File → Open & Export → Import/Export → Export to a file → Outlook Data File (.pst).

Mode selection

ModeWhat it scans
Email MessagesMail folders, for duplicate messages.
ContactsThe Contacts folder, for duplicate contact entries.
Calendar EventsThe Calendar, for duplicate events. Recurring master records are skipped.

Email controls

Shown in Email Messages mode.

ControlDescription
Folder + ▾ SelectWhich mail folder to scan. The browse button lists all folders with item counts.
All Mail FoldersScan every mail folder for duplicates.
Match By: Message-IDMatch on internetMessageId, the RFC 2822 message identifier. Exact and safe.
Match By: Subject+Sender+DateMatch on subject, sender and received date. More aggressive; may catch migration artifacts.

Workflow

  1. Enter the mailbox address, select a mode and confirm Dry Run is checked.
  2. Click Scan for Duplicates. The tool scans and groups items by match key.
  3. An HTML report opens showing total scanned, groups found, items to delete, and a 50-group sample (green = KEEP, red = WOULD DELETE).
  4. A CSV file is written with every group. Review it in Excel to confirm the pattern looks right before going further.
  5. If you are satisfied, uncheck Dry Run and click Scan for Duplicates again to delete.

How duplicates are resolved

Within each duplicate group the oldest item (earliest received or created date) is kept and all others are deleted.

  • Contacts are grouped by email address, or by display name if there is no email address.
  • Calendar events are grouped by subject + organizer + start date/time.
Important

Calendar and contact deletions cannot be undone from this tool. Always export to PST first.

09Security Investigations tab

Six forensic audit tools for breach response, designed to answer three questions: how did the attacker get in, what did they do, and how are they keeping access?

Security

After a suspected breach, run the tools in this order: OAuth App Audit → Suspicious Rule Detector → External Forwarding Domains → Sign-in Anomaly Report → Attachment Inventory → Permission Snapshot.

Shared controls

ControlDescription
MailboxThe mailbox to investigate. Leave blank for tenant-wide operations.
Start Date / End DateDate range for Attachment Inventory and the Sign-in Anomaly Report.
TimezoneTime zone used to display timestamps in reports.

OAuth App Audit

Lists every third-party application granted OAuth2 permissions in the tenant. Attackers often register malicious OAuth apps to keep access even after a password reset. Requires Application.Read.All.

  • Apps with Mail.Read or Mail.ReadWrite scopes are flagged red.
  • Unverified publishers are flagged. Legitimate apps are almost always verified.
Security

Investigate any unverified app with Mail.ReadWrite scope that you don't recognize, and revoke it in Entra → Enterprise Applications.

External Forwarding Domains

Scans every mailbox for inbox rules that forward externally and for admin SMTP forwarding. Results are grouped by destination domain. Domains that 5 or more mailboxes forward to are highlighted red. Requires User.ReadBasic.All.

Security

An unrecognized domain appearing as a forwarding destination across multiple mailboxes indicates a coordinated attack.

Attachment Inventory

Lists all attachments received in a date window, with filename, type, size, sender and subject. Dangerous file types (EXE, ZIP, JS, PS1, BAT, VBS, CMD, HTA, SCR, PIF) are flagged red. Files over 5 MB are highlighted for exfiltration review.

Sign-in Anomaly Report

Shows the Entra ID sign-in log for a mailbox in a date window. It surfaces failed attempts, high-risk events, sign-ins from unusual countries and login storms. Requires AuditLog.Read.All and Entra ID P1 or P2.

Caution

Sign-ins from countries the user has never worked from, or dozens of failed attempts followed by a success, are strong indicators of a password spray attack.

Mailbox Permission Snapshot

Exports all calendar delegates and mailbox sharing permissions across every mailbox. Run it before and after a suspected breach to spot delegate access added by an attacker. Requires User.ReadBasic.All.

Suspicious Rule Detector

Evaluates every inbox rule and assigns it a risk score. It also detects hidden MAPI rules that are invisible in Outlook and in the standard Graph API.

Scoring criteria

CriterionScore
Forwards externally (forwardTo with an external address)+40
Redirects externally (redirectTo with an external address)+40
Forwards as attachment to an external address+35
Permanently deletes messages+50
Moves to Deleted Items / auto-deletes+30
Moves to a custom folder+10
Rule is system-locked+20
Rule has no display name+15
Subject targets executive keywords (ceo, cfo, payroll, wire, invoice)+25
Hidden MAPI rule (invisible in Outlook)99, always HIGH

Risk levels

Risk levelScoreAction
HIGH≥ 40Investigate immediately. Very likely malicious.
MEDIUM20–39Review. Suspicious, but may be legitimate.
LOW< 20Note for awareness.
Security

A rule that forwards externally and also deletes the original scores 70. This is a classic attacker pattern for silent email exfiltration.

10Troubleshooting tab

Permission Checker

Click Run Permission Check to verify every permission with live API calls, not just by checking what is listed in Entra. The check runs in a background thread so the window stays responsive.

StatusMeaning
Green: OKPermission granted and the API call succeeded.
Red: MISSING403 Forbidden. The permission is not granted or admin consent was not clicked.
Yellow: ERRORUnexpected error. Check the Detail column.

Reconnect & Recheck

Acquires a fresh Bearer token and immediately reruns all permission tests. Use it every time you add or change a permission in Entra.

Caution

Entra permission changes can take 1–5 minutes to propagate. If a permission still shows MISSING after Reconnect, wait 2 minutes and try again.

Permission reference

PermissionRequired for
Mail.ReadWriteAll mail operations and all Audit & Reports features
User.ReadBasic.AllCompany-Wide Audit, Forwarding Report, Permission Snapshot
Application.Read.AllOAuth App Audit
AuditLog.Read.AllSign-in Anomaly Report
ThreatHunting.Read.AllMessage Trace (requires Defender for Office 365 Plan 1 or 2)

Common errors and fixes

SymptomResolution
Not connected — check credentialsRe-check all three values in Entra, or reload a saved profile.
401 UnauthorizedClick Connect & Test to get a fresh token.
403 ForbiddenAdmin consent not granted. Entra → API permissions → Grant admin consent.
404 Not Found on a folderThe folder name is wrong. Use ▾ Select to browse exact names.
Id is malformed / 400Make sure you are running the current release.
Move stops after 1 hourFixed in current releases: automatic token refresh keeps long operations running. Update if you see this.
Throttled (429) repeatedlyNormal. The tool waits for Retry-After automatically. Stop only if it has been stuck for 10+ minutes.
No progress for 5+ minutesThe 5-minute timeout fires, logs a warning, breaks the thread pool and continues. Check the log and run again.
Search returns 0 resultsTest the KQL query in Outlook on the web first.
Company-Wide Audit finds 0 mailboxesUser.ReadBasic.All missing, or admin consent not granted.
Email Timeline shows 0 messagesCheck the date range and time zone. Verify in Outlook on the web.
Null item error on startupRemove null entries from C:\scripts\CCI_MailboxMaint_Profiles.json.
Script won't launchRun Unblock-File -Path C:\scripts\CCI_MailboxMaintenance.ps1, then Set-ExecutionPolicy -Scope CurrentUser RemoteSigned.
OAuth App Audit returns 403Application.Read.All missing.
Sign-in Anomaly returns 403AuditLog.Read.All missing, or Entra ID P1/P2 not licensed.
Bulk audit buttons show black textDisplay issue in older builds. Update to the current release.
Folder browse (▾ Select) failsClick Connect & Test before using ▾ Select.

11Performance and throttling

Performance summary

OperationThreadsSpeed estimate
Delete8~25 seconds per 1,000 items
Move/Copy cross-mailbox1–8~3 messages/second at 3 threads
Archive ALL Mail1–8Same as Move/Copy, per folder
Folder Size Report—~5–10 seconds per mailbox
Company-Wide Audit—30–90 minutes for large tenants
Email Timeline1~1–2 seconds per page of 1,000
Duplicate Finder1~1–2 seconds per page of 1,000
Token auto-refreshAutoTransparent, 3 minutes before expiry

Throttling

  • HTTP 429 (Too Many Requests) is handled automatically. The tool reads Retry-After and pauses. No items are skipped.
  • Microsoft can return Retry-After values of 30–120 seconds on large operations against busy tenants.
  • If there is no progress for 5 minutes, a stuck-thread safeguard fires: it logs a warning and breaks the thread pool so processing continues with the next page.
  • A 30-minute hard timeout per page prevents infinite hangs.

Resuming after Stop

If you stop a Move and run it again with the same settings, the items already moved are no longer in the source folder. The date filter applies to the source only, so nothing is processed twice.

12Security and logs

Security considerations

  • The Client Secret is held in memory only during the session. The script never writes it to disk in plain text.
  • The profile file stores the Client Secret DPAPI-encrypted, readable only by the same Windows user on the same machine.
  • Mail.ReadWrite grants access to every mailbox in the tenant. Treat credential profiles like a Global Admin password.
  • Rotate the client secret annually, or whenever a team member with access leaves.
  • To revoke access immediately, delete the app registration or disable the secret in Entra.
Caution

Because Mail.ReadWrite covers every mailbox in the tenant, anyone holding a working profile can read and change any mailbox. Protect the PC and user account where profiles are saved.

Logs and files

FileLocation
ScriptC:\scripts\CCI_MailboxMaintenance.ps1
Credential profilesC:\scripts\CCI_MailboxMaint_Profiles.json
Operations log (CSV)C:\scripts\CCI_MailboxMaint_Log.csv
HTML audit reportsC:\scripts\
Help PDF (optional)C:\scripts\CCI_MailboxMaintenance_Guide.pdf
Caution

The CSV log may contain sensitive mailbox data. Restrict access to it and back it up regularly.

Exchange Online reference commands

Useful Exchange Online PowerShell commands for confirming what the tool reports:

Connect-ExchangeOnline -UserPrincipalName admin@example.com
Get-Mailbox user@example.com | Select LitigationHoldEnabled,RetentionHoldEnabled
Get-MailboxPermission user@example.com | Where { $_.AccessRights -eq 'FullAccess' }
Get-InboxRule -Mailbox user@example.com | Select Name,Enabled,ForwardTo,DeleteMessage
Get-MailboxFolderStatistics user@example.com | Select Name,ItemsInFolder | Sort ItemsInFolder -Desc

13Quick reference

ItemValue / action
Script filenameCCI_MailboxMaintenance.ps1
Launch command.\CCI_MailboxMaintenance.ps1
Unblock on first runUnblock-File -Path C:\scripts\CCI_MailboxMaintenance.ps1
Profile fileC:\scripts\CCI_MailboxMaint_Profiles.json
CSV logC:\scripts\CCI_MailboxMaint_Log.csv
Entra admin centerhttps://entra.microsoft.com
After adding an Entra permissionTroubleshooting → Reconnect & Recheck
Check permissions liveTroubleshooting → Run Permission Check
Browse source folderClick ▾ Select next to the Folder field
All Mail FoldersCheckbox in SOURCE; hides the Folder field
Received BeforeDate picker in SOURCE
All items (no filter)Checkbox next to the date picker
Preserve folder structureCheckbox in DESTINATION; hides the Dest Folder field
Dest Folder optional when…All Mail Folders and Preserve folder structure are both checked (creates at mailbox root)
Thread countThreads spinner, 1–8, default 3 (Move/Copy only)
Delete speed~25 seconds per 1,000 items (8 threads)
Cross-mailbox move speed~3 messages/second (3 threads, 3 API calls each)
Token auto-refreshAutomatic, 3 minutes before expiry
Duplicate Finder dry runChecked by default; report only, nothing deleted
Backup before duplicate deleteOutlook → File → Open & Export → Export to .pst
Suspicious rule HIGH≥ 40 points; investigate immediately
Hidden MAPI rule score99 points; always HIGH, invisible in Outlook
Stop any operationClick Stop; safe between batches
Resume after StopRun again with the same settings; processed items won't match
Status barBottom of window: ▶ RUNNING / ✓ COMPLETE / ⏹ STOPPED
Help button? at the top right of the title bar; opens the PDF guide
Rotate client secretEntra → App registrations → Certificates & secrets → New client secret

14Getting help

Questions, bug reports, feature requests or a copy of the tool: email info@taucher.llc. You'll reach the people who wrote the software.