Proofpoint Quarantine Management
Overview
Proofpoint quarantine holds messages that have been identified as threats, spam, or policy violations. The quarantine API allows administrators to search, preview, release, and delete quarantined messages. This is a critical workflow for MSP help desk teams who need to respond to "missing email" requests from end users.
Quarantine operates at two levels:
- Admin quarantine - Managed by administrators, holds threats and policy violations
- End-user quarantine - Self-service spam quarantine with digests
Anti-triggers
- Removing a message that already reached the mailbox — quarantine
only holds mail that was stopped before delivery. Pulling a delivered
message back out of Microsoft 365 or Google Workspace is TRAP
auto-pull and search-and-destroy: use
proofpoint-forensics.
- Why the message scored the way it did — the quarantine entry
carries the scores but not the threat event, its classification, or
its campaign; use
proofpoint-tap.
- A rewritten link found inside a quarantined message — decoding
and re-checking
urldefense.proofpoint.com URLs is
proofpoint-url-defense.
- Another vendor's quarantine — release and delete vocabulary is
shared across the stack. Checkpoint Harmony is
avanan-quarantine, SpamTitan is spamtitan-quarantine,
and Mimecast calls it the held queue: mimecast-queue-management.
Key Concepts
Quarantine Reasons
| Reason |
Description |
Default Retention |
spam |
Message scored above spam threshold |
30 days |
phish |
Message identified as phishing |
30 days |
malware |
Message contained malware |
30 days |
impostor |
Message flagged as BEC/impostor |
30 days |
bulk |
Bulk/marketing email |
14 days |
adult |
Adult content filter match |
30 days |
policy |
Custom policy rule match |
Configurable |
dmarc |
Failed DMARC authentication |
30 days |
dkim |
Failed DKIM verification |
30 days |
spf |
Failed SPF check |
30 days |
Quarantine Folders
| Folder |
Contents |
Release Allowed |
quarantine |
Admin quarantine (threats, policy) |
Admin only |
spam |
End-user spam quarantine |
End-user or admin |
bulk |
Bulk/graymail quarantine |
End-user or admin |
Message States
| State |
Description |
quarantined |
Message is held in quarantine |
released |
Message was released to recipient |
deleted |
Message was permanently deleted |
expired |
Message exceeded retention period and was removed |
Field Reference
Quarantine Message Fields
| Field |
Type |
Description |
id |
string |
Unique quarantine message identifier |
GUID |
string |
Message GUID (links to TAP events) |
QID |
string |
Queue ID from mail server |
sender |
string |
Envelope sender address |
recipients |
string[] |
List of recipient addresses |
subject |
string |
Message subject line |
date |
datetime |
When the message was received |
quarantineDate |
datetime |
When the message was quarantined |
reason |
string |
Why the message was quarantined |
folder |
string |
Which quarantine folder holds the message |
size |
int |
Message size in bytes |
headerFrom |
string |
Display From address (may differ from envelope sender) |
replyTo |
string |
Reply-To address if present |
spamScore |
int |
Spam confidence score |
phishScore |
int |
Phishing confidence score |
malwareScore |
int |
Malware confidence score |
impostorScore |
int |
Impostor/BEC confidence score |
Search Parameters
| Parameter |
Type |
Description |
sender |
string |
Filter by sender address (exact or partial) |
recipient |
string |
Filter by recipient address |
subject |
string |
Filter by subject (substring match) |
startDate |
datetime |
Start of date range |
endDate |
datetime |
End of date range |
reason |
string |
Filter by quarantine reason |
folder |
string |
Filter by quarantine folder |
limit |
int |
Maximum results (default 25, max 500) |
offset |
int |
Pagination offset |
MCP Tools
| Tool |
Description |
Key Parameters |
proofpoint_quarantine_list |
List quarantined messages with sender, recipient, subject and reason |
sender, recipient, subject, startDate, endDate, folder, page, per_page |
proofpoint_quarantine_search |
Keyword search across sender, recipient and subject |
query (required), startDate, endDate, page, per_page |
proofpoint_quarantine_release |
⚠ High-impact. Deliver a quarantined message to its recipient |
message_id (required) |
proofpoint_quarantine_delete |
⚠ Destructive, irreversible. Permanently delete a quarantined message |
message_id (required) |
Note the split: _list is the structured, field-filtered query and _search
is a single free-text query across three fields. Reach for _list when you
know the sender or recipient — _search cannot filter by them.
Not available through this plugin
- Previewing or reading a message body. There is no
quarantine_preview and no get-by-ID. _list and _search return
metadata — sender, recipient, subject, reason — and nothing more. A
release decision here is made on metadata alone. If the subject line
is not enough to judge legitimacy, escalate to someone with Proofpoint
console access rather than releasing on a guess.
- Bulk release and bulk delete. Both destructive tools take a single
message_id. Multiple messages means multiple calls, each one a
separate decision — which is a feature, not a limitation to work
around.
Common Workflows
User Reports Missing Email
- Get the sender and approximate time from the user
- Call
proofpoint_quarantine_list with recipient=<user>,
sender=<expected_sender> and an appropriate date range
- Judge legitimacy from the metadata you have — sender, subject, and the
quarantine reason. You cannot read the body; if the metadata does
not settle it, do not release, escalate
- If legitimate, call
proofpoint_quarantine_release with the
message_id
- If the sender is consistently quarantined, consider adding a safe sender
policy in the Proofpoint console — this plugin has no policy-write tool
Daily Quarantine Review
- Call
proofpoint_quarantine_list with folder=quarantine and
per_page=100
- Review messages grouped by reason
- Release any false positives — one
proofpoint_quarantine_release call
per message
- Delete confirmed threats, one
proofpoint_quarantine_delete at a time
- Note recurring senders for blocklist consideration
Release for a Known-Good Sender
- Call
proofpoint_quarantine_list with sender=<known_good_sender>
- Collect the message IDs from the results and confirm the list is what
you expect — there is no bulk tool, so each release is its own call and
its own decision
- Call
proofpoint_quarantine_release once per message_id
- Recommend adding the sender to the organization's safe sender list
Investigate Quarantine Spike
- Call
proofpoint_quarantine_list with a narrow time window
- Group results by
reason to identify what type of messages increased
- Group by
sender to identify if a single source is responsible
- Cross-reference with TAP data using message identifiers
- Determine if this is a targeted attack or spam campaign
Clean Up Expired Threats
- Call
proofpoint_quarantine_list with a date range older than 14 days
and review what is still held
- Confirm each message is a genuine threat before removing it — the
quarantine store is the only copy, and deleting forecloses any later
forensic question
- Call
proofpoint_quarantine_delete per message_id
- Document any messages that were released for the audit trail
Error Handling
Common API Errors
| Code |
Message |
Resolution |
| 400 |
Invalid date range |
Ensure startDate is before endDate |
| 400 |
Invalid folder |
Use quarantine, spam, or bulk |
| 401 |
Authentication failed |
Verify service principal and secret |
| 403 |
Insufficient permissions |
Ensure quarantine management is enabled |
| 404 |
Message not found |
Message may have expired or been deleted |
| 409 |
Message already released |
Message was already released by another admin |
| 429 |
Rate limit exceeded |
Implement backoff; limit bulk operations |
Release Failures
If a release fails:
- The message may have been deleted or expired
- The recipient mailbox may be full or invalid
- The downstream mail server may be rejecting delivery
- Check the message ID is correct and the message still exists in quarantine
Search Returning Too Many Results
- Narrow the date range
- Add more specific filters (sender + recipient + subject)
- Use pagination with
limit and offset
- Filter by specific quarantine reason
Best Practices
- Preview before release - Always preview a message before releasing to verify it is legitimate
- Document releases - Keep a log of released messages for audit purposes
- Use bulk operations carefully - Bulk release should only be used for verified false positives
- Monitor quarantine volume - Spikes may indicate a targeted attack or misconfigured policy
- Set up digests - Enable end-user quarantine digests to reduce help desk load
- Review retention policies - Ensure quarantine retention matches your compliance requirements
- Never release confirmed threats - If a message is confirmed malware or phishing, delete it
- Cross-reference with TAP - Use the GUID to check TAP threat data before releasing
- Safe sender lists - For recurring false positives, add the sender to the safe sender list rather than releasing each time
- Train users - Educate users on checking their quarantine digest before contacting the help desk
Related Skills
1---2name: proofpoint-quarantine3description: Proofpoint quarantine management fundamentals: quarantine reasons and folders, message states, search/filter parameters, and release/delete workflows for admin and end-user quarantine.4---56# Proofpoint Quarantine Management78## Overview910Proofpoint quarantine holds messages that have been identified as threats, spam, or policy violations. The quarantine API allows administrators to search, preview, release, and delete quarantined messages. This is a critical workflow for MSP help desk teams who need to respond to "missing email" requests from end users.1112Quarantine operates at two levels:13- **Admin quarantine** - Managed by administrators, holds threats and policy violations14- **End-user quarantine** - Self-service spam quarantine with digests1516## Anti-triggers1718- **Removing a message that already reached the mailbox** — quarantine19 only holds mail that was stopped before delivery. Pulling a delivered20 message back out of Microsoft 365 or Google Workspace is TRAP21 auto-pull and search-and-destroy: use `proofpoint-forensics`.22- **Why the message scored the way it did** — the quarantine entry23 carries the scores but not the threat event, its classification, or24 its campaign; use `proofpoint-tap`.25- **A rewritten link found inside a quarantined message** — decoding26 and re-checking `urldefense.proofpoint.com` URLs is27 `proofpoint-url-defense`.28- **Another vendor's quarantine** — release and delete vocabulary is29 shared across the stack. Checkpoint Harmony is30 `avanan-quarantine`, SpamTitan is `spamtitan-quarantine`,31 and Mimecast calls it the held queue: `mimecast-queue-management`.3233## Key Concepts3435### Quarantine Reasons3637| Reason | Description | Default Retention |38|--------|-------------|-------------------|39| `spam` | Message scored above spam threshold | 30 days |40| `phish` | Message identified as phishing | 30 days |41| `malware` | Message contained malware | 30 days |42| `impostor` | Message flagged as BEC/impostor | 30 days |43| `bulk` | Bulk/marketing email | 14 days |44| `adult` | Adult content filter match | 30 days |45| `policy` | Custom policy rule match | Configurable |46| `dmarc` | Failed DMARC authentication | 30 days |47| `dkim` | Failed DKIM verification | 30 days |48| `spf` | Failed SPF check | 30 days |4950### Quarantine Folders5152| Folder | Contents | Release Allowed |53|--------|----------|-----------------|54| `quarantine` | Admin quarantine (threats, policy) | Admin only |55| `spam` | End-user spam quarantine | End-user or admin |56| `bulk` | Bulk/graymail quarantine | End-user or admin |5758### Message States5960| State | Description |61|-------|-------------|62| `quarantined` | Message is held in quarantine |63| `released` | Message was released to recipient |64| `deleted` | Message was permanently deleted |65| `expired` | Message exceeded retention period and was removed |6667## Field Reference6869### Quarantine Message Fields7071| Field | Type | Description |72|-------|------|-------------|73| `id` | string | Unique quarantine message identifier |74| `GUID` | string | Message GUID (links to TAP events) |75| `QID` | string | Queue ID from mail server |76| `sender` | string | Envelope sender address |77| `recipients` | string[] | List of recipient addresses |78| `subject` | string | Message subject line |79| `date` | datetime | When the message was received |80| `quarantineDate` | datetime | When the message was quarantined |81| `reason` | string | Why the message was quarantined |82| `folder` | string | Which quarantine folder holds the message |83| `size` | int | Message size in bytes |84| `headerFrom` | string | Display From address (may differ from envelope sender) |85| `replyTo` | string | Reply-To address if present |86| `spamScore` | int | Spam confidence score |87| `phishScore` | int | Phishing confidence score |88| `malwareScore` | int | Malware confidence score |89| `impostorScore` | int | Impostor/BEC confidence score |9091### Search Parameters9293| Parameter | Type | Description |94|-----------|------|-------------|95| `sender` | string | Filter by sender address (exact or partial) |96| `recipient` | string | Filter by recipient address |97| `subject` | string | Filter by subject (substring match) |98| `startDate` | datetime | Start of date range |99| `endDate` | datetime | End of date range |100| `reason` | string | Filter by quarantine reason |101| `folder` | string | Filter by quarantine folder |102| `limit` | int | Maximum results (default 25, max 500) |103| `offset` | int | Pagination offset |104105## MCP Tools106107| Tool | Description | Key Parameters |108|------|-------------|----------------|109| `proofpoint_quarantine_list` | List quarantined messages with sender, recipient, subject and reason | `sender`, `recipient`, `subject`, `startDate`, `endDate`, `folder`, `page`, `per_page` |110| `proofpoint_quarantine_search` | Keyword search across sender, recipient and subject | `query` (required), `startDate`, `endDate`, `page`, `per_page` |111| `proofpoint_quarantine_release` | ⚠ **High-impact.** Deliver a quarantined message to its recipient | `message_id` (required) |112| `proofpoint_quarantine_delete` | ⚠ **Destructive, irreversible.** Permanently delete a quarantined message | `message_id` (required) |113114Note the split: `_list` is the structured, field-filtered query and `_search`115is a single free-text `query` across three fields. Reach for `_list` when you116know the sender or recipient — `_search` cannot filter by them.117118### Not available through this plugin119120- **Previewing or reading a message body.** There is no121 `quarantine_preview` and no get-by-ID. `_list` and `_search` return122 metadata — sender, recipient, subject, reason — and nothing more. **A123 release decision here is made on metadata alone.** If the subject line124 is not enough to judge legitimacy, escalate to someone with Proofpoint125 console access rather than releasing on a guess.126- **Bulk release and bulk delete.** Both destructive tools take a single127 `message_id`. Multiple messages means multiple calls, each one a128 separate decision — which is a feature, not a limitation to work129 around.130131## Common Workflows132133### User Reports Missing Email1341351. Get the sender and approximate time from the user1362. Call `proofpoint_quarantine_list` with `recipient=<user>`,137 `sender=<expected_sender>` and an appropriate date range1383. Judge legitimacy from the metadata you have — sender, subject, and the139 quarantine reason. **You cannot read the body**; if the metadata does140 not settle it, do not release, escalate1414. If legitimate, call `proofpoint_quarantine_release` with the142 `message_id`1435. If the sender is consistently quarantined, consider adding a safe sender144 policy in the Proofpoint console — this plugin has no policy-write tool145146### Daily Quarantine Review1471481. Call `proofpoint_quarantine_list` with `folder=quarantine` and149 `per_page=100`1502. Review messages grouped by reason1513. Release any false positives — one `proofpoint_quarantine_release` call152 per message1534. Delete confirmed threats, one `proofpoint_quarantine_delete` at a time1545. Note recurring senders for blocklist consideration155156### Release for a Known-Good Sender1571581. Call `proofpoint_quarantine_list` with `sender=<known_good_sender>`1592. Collect the message IDs from the results and confirm the list is what160 you expect — there is no bulk tool, so each release is its own call and161 its own decision1623. Call `proofpoint_quarantine_release` once per `message_id`1634. Recommend adding the sender to the organization's safe sender list164165### Investigate Quarantine Spike1661671. Call `proofpoint_quarantine_list` with a narrow time window1682. Group results by `reason` to identify what type of messages increased1693. Group by `sender` to identify if a single source is responsible1704. Cross-reference with TAP data using message identifiers1715. Determine if this is a targeted attack or spam campaign172173### Clean Up Expired Threats1741751. Call `proofpoint_quarantine_list` with a date range older than 14 days176 and review what is still held1772. Confirm each message is a genuine threat before removing it — the178 quarantine store is the only copy, and deleting forecloses any later179 forensic question1803. Call `proofpoint_quarantine_delete` per `message_id`1814. Document any messages that were released for the audit trail182183## Error Handling184185### Common API Errors186187| Code | Message | Resolution |188|------|---------|------------|189| 400 | Invalid date range | Ensure startDate is before endDate |190| 400 | Invalid folder | Use `quarantine`, `spam`, or `bulk` |191| 401 | Authentication failed | Verify service principal and secret |192| 403 | Insufficient permissions | Ensure quarantine management is enabled |193| 404 | Message not found | Message may have expired or been deleted |194| 409 | Message already released | Message was already released by another admin |195| 429 | Rate limit exceeded | Implement backoff; limit bulk operations |196197### Release Failures198199If a release fails:200- The message may have been deleted or expired201- The recipient mailbox may be full or invalid202- The downstream mail server may be rejecting delivery203- Check the message ID is correct and the message still exists in quarantine204205### Search Returning Too Many Results206207- Narrow the date range208- Add more specific filters (sender + recipient + subject)209- Use pagination with `limit` and `offset`210- Filter by specific quarantine reason211212## Best Practices2132141. **Preview before release** - Always preview a message before releasing to verify it is legitimate2152. **Document releases** - Keep a log of released messages for audit purposes2163. **Use bulk operations carefully** - Bulk release should only be used for verified false positives2174. **Monitor quarantine volume** - Spikes may indicate a targeted attack or misconfigured policy2185. **Set up digests** - Enable end-user quarantine digests to reduce help desk load2196. **Review retention policies** - Ensure quarantine retention matches your compliance requirements2207. **Never release confirmed threats** - If a message is confirmed malware or phishing, delete it2218. **Cross-reference with TAP** - Use the GUID to check TAP threat data before releasing2229. **Safe sender lists** - For recurring false positives, add the sender to the safe sender list rather than releasing each time22310. **Train users** - Educate users on checking their quarantine digest before contacting the help desk224225## Related Skills226227- [Proofpoint TAP](../tap/SKILL.md) - Threat event data and click tracking228- [Proofpoint Threat Intelligence](../threat-intel/SKILL.md) - Threat campaign details229- [Proofpoint URL Defense](../url-defense/SKILL.md) - URL rewriting and analysis230- [Proofpoint API Patterns](../api-patterns/SKILL.md) - Authentication and rate limits