Skip to content

Depot mailsuspended

Registers the suspended-mail routes on mux, behind tenant.Middleware.

This page is generated from the Depot route table. Every operation carries the permission it needs and the anchor an agent can link to.

GETmailbox:manageshared facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

List the suspended mail, newest first.

NameInTypeRequiredDescription
mailboxIdquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
qquerystringNoFree-text search term.
reasonquerystringNo
StatusBodyDescription
200application/json, PagedResultSuspendedMailViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold mailbox:manage.
404application/problem+json, ProblemDetailsNo resource matches.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of SuspendedMailView
items[].expiresAtrequiredstring (date-time)
items[].fromrequiredstring
items[].idrequiredstring
items[].mailboxAddressrequiredstring
items[].mailboxIdrequiredstring
items[].reasonrequiredstring
items[].reasonClassrequiredstring
items[].receivedAtrequiredstring (date-time)
items[].sizeBytesrequiredinteger

int64.

items[].subjectrequiredstring
pagerequiredinteger
pageSizerequiredinteger
totalrequiredinteger
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/mail/suspended?mailboxId=<mailboxId>&page=0&pageSize=0&q=<q>&reason=<reason>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETmailbox:manageshared facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

Get one suspended message with its sender verdict and a text preview.

NameInTypeRequiredDescription
messageIDpathstringYesA uuid.
StatusBodyDescription
200application/json, SuspendedMailDetailSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold mailbox:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
attachmentsrequiredarray of MailAttachmentInfo
attachments[].filenamerequiredstring
attachments[].sizeBytesrequiredinteger

int64.

authResultsrequiredSuspendedMailAuthResults

SuspendedMailAuthResults is the sender authentication verdict.

authResults.alignedrequiredboolean
authResults.dkimrequiredstring
authResults.dmarcrequiredstring
authResults.spfrequiredstring
ccrequiredarray of string
classificationrequiredstring
expiresAtrequiredstring (date-time)
fromrequiredstring
idrequiredstring
mailboxAddressrequiredstring
mailboxIdrequiredstring
previewrequiredstring
reasonrequiredstring
reasonClassrequiredstring
receivedAtrequiredstring (date-time)
sizeBytesrequiredinteger

int64.

subjectrequiredstring
torequiredarray of string
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/mail/suspended/<messageID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

DELETEmailbox:manageshared facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

Discard a suspended message.

The record stays; the message itself is erased.

NameInTypeRequiredDescription
messageIDpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold mailbox:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThis message is no longer suspended.
500application/problem+json, ProblemDetailsNo client store in request context.
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X DELETE 'https://depot.example.com/api/v1/mail/suspended/<messageID>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/mail/suspended/{messageID}/block

Section titled “POST /api/v1/mail/suspended/{messageID}/block”

POSTmailbox:manageshared facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

Block the sender of a suspended message (its address or its whole domain) and discard the message.

NameInTypeRequiredDescription
messageIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
scoperequiredstring
StatusBodyDescription
200application/json, objectSuccess.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold mailbox:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThis message is no longer suspended.
500application/problem+json, ProblemDetailsNo client store in request context.
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X POST 'https://depot.example.com/api/v1/mail/suspended/<messageID>/block' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"scope": "string"
}'

GET /api/v1/mail/suspended/{messageID}/raw

Section titled “GET /api/v1/mail/suspended/{messageID}/raw”

GETmailbox:manageshared facehosteditmspremoteIdempotentdownloadNot fully resolved

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

What this page does not know
  • response

These are parts of the route the extractor could not read from the source. Everything else on this page came straight from it.

Source: [object Object]

Download the original message (.eml).

Served as an attachment with nosniff so a browser never renders a possibly hostile message inline.

NameInTypeRequiredDescription
messageIDpathstringYesA uuid.
StatusBodyDescription
200application/octet-stream, string (binary)Success. The body shape was not resolved; see x-outpost-unresolved.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold mailbox:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsNo client store in request context.
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/mail/suspended/<messageID>/raw' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/mail/suspended/{messageID}/release

Section titled “POST /api/v1/mail/suspended/{messageID}/release”

POSTmailbox:manageshared facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

Release a suspended message so the pipeline runs it again, passing the gate that held it.

Quarantined mail needs confirm: true.

NameInTypeRequiredDescription
messageIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
allowSenderboolean or null
confirmboolean or null
StatusBodyDescription
200application/json, SuspendedMailReleaseResultSuccess.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold mailbox:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThis message is no longer suspended.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
staterequiredstring
suspendReasonstring
ticketClientIdstring
ticketIdstring
ticketReferencestring
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X POST 'https://depot.example.com/api/v1/mail/suspended/<messageID>/release' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"allowSender": false,
"confirm": false
}'

Content is licensed CC BY 4.0. Code samples are MIT. Outpost and the Outpost mark are trademarks of Outpost Business Solutions, PBC and are not covered by either license.