Skip to content

outboundConnectors

Outbound Connectors. Connectors that route mail out to partner or on-prem hosts. The outboundConnectors entity set lives under /exchange/v1.0/outboundConnectors in the Mail flow category.

Fact Value
Path /exchange/v1.0/outboundConnectors
Category Mail flow
Tier Tier 3, Mail flow
Read role MailFlow.Read.All (Community)
Write role MailFlow.ReadWrite.All (Pro)
Backing cmdlets Get-OutboundConnector, Set-OutboundConnector, New-OutboundConnector, Remove-OutboundConnector
Method Path Synopsis Role Plan
GET /exchange/v1.0/outboundConnectors List outboundConnectors entries. MailFlow.Read Community
POST /exchange/v1.0/outboundConnectors POST /outboundConnectors - creates an outbound connector via New-OutboundConnector. Body must include name. Recipient scope (allAcceptedDomains or recipientDomains) is strongly recommended - the cmdlet allows omission at create time but the connector will not actually route any mail without it. MailFlow.ReadWrite Pro
GET /exchange/v1.0/outboundConnectors/{key} Get a single outboundConnectors entry by Identity. MailFlow.Read Community
PATCH /exchange/v1.0/outboundConnectors/{key} PATCH /outboundConnectors/{key} - partial update via Set-OutboundConnector. Known issue (slice 8a): after Set-OutboundConnector the runspace’s session can’t see the connector by Identity for the immediate re-fetch (EXO DC-stickiness). The Set landed; we return 200 + stub + X-Refetch-Skipped header instead of misleading 404. MailFlow.ReadWrite Pro
DELETE /exchange/v1.0/outboundConnectors/{key} DELETE /outboundConnectors/{key} - destructive, no soft-delete. MailFlow.ReadWrite Pro

List outboundConnectors entries.

Backing cmdlet: Get-OutboundConnector. Role: MailFlow.Read (Community).

Parameter In Type Required Description
all query bool (switch) Return all results instead of the EXO default of 1000. Maps -ResultSize Unlimited on Get-OutboundConnector; prevents silent truncation in large tenants.
isTransportRuleScoped query bool (switch) Filter results to outbound connectors that are scoped to transport rules (mail flow rules). Maps -IsTransportRuleScoped.
includeTestModeConnectors query bool (switch) Include connectors that are in test mode. Maps -IncludeTestModeConnectors on Get-OutboundConnector.

Stub auto-generated example for the outboundConnectors collection. Backing cmdlet: Get-OutboundConnector. Live-verify with ?$top=3&$select=Id,Name and replace the synthetic body before promoting to Tier 1.

GET /exchange/v1.0/outboundConnectors?$top=3 HTTP/1.1
Authorization: Bearer {token}
HTTP/1.1 200 OK
{
"@odata.context": "http://localhost:5043/exchange/v1.0/$metadata#outboundConnectors",
"value": []
}

Notes: Illustrative example derived from the cmdlet documentation, not a live capture: field names are real, values are placeholders.

Related: GET /exchange/v1.0/outboundConnectors/{key}

POST /outboundConnectors - creates an outbound connector via New-OutboundConnector. Body must include name. Recipient scope (allAcceptedDomains or recipientDomains) is strongly recommended - the cmdlet allows omission at create time but the connector will not actually route any mail without it.

Backing cmdlet: New-OutboundConnector. Role: MailFlow.ReadWrite (Pro).

Parameter In Type Required Description
name body yes
allAcceptedDomains body
cloudServicesMailEnabled body
comment body
connectorSource body
connectorType body
enabled body
isTransportRuleScoped body
linkForModifiedConnector body
mtaStsMode body
recipientDomains body
routeAllMessagesViaOnPremises body
senderRewritingEnabled body
smartHosts body
smtpDaneMode body
testMode body
tlsDomain body
tlsSettings body
useMXRecord body
dryRun query bool (switch)

New-OutboundConnector requires the name field. Omitting it returns a 400 BadRequest with the canonical error envelope before the cmdlet is invoked.

POST /exchange/v1.0/outboundConnectors HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
{
"connectorType": "Partner",
"recipientDomains": [
"contoso.com"
]
}
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"error": {
"code": "BadRequest",
"message": "The required field 'name' is missing from the request body.",
"target": "name"
},
"correlationId": "0HN7K2QZ9X4ABC"
}

Notes: Doc-derived from Wiki + write-param allowlist; not live-captured. Body fields are Wiki-valid; values are illustrative.

Related: GET /exchange/v1.0/outboundConnectors

Creates an outbound mail-flow connector via New-OutboundConnector. Only name is required; recipient scope (allAcceptedDomains or recipientDomains) is strongly recommended so the connector actually routes mail.

POST /exchange/v1.0/outboundConnectors HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
{
"name": "exonaut-sample-outboundConnectors",
"connectorType": "Partner",
"recipientDomains": [
"contoso.com"
],
"smartHosts": [
"mail.contoso.com"
],
"tlsSettings": "EncryptionOnly",
"comment": "EXONAUT sample outbound connector",
"enabled": true
}
HTTP/1.1 201 Created
Location: /exchange/v1.0/outboundConnectors/exonaut-sample-outboundConnectors
{
"Id": "exonaut-sample-outboundConnectors",
"Identity": "exonaut-sample-outboundConnectors",
"Name": "exonaut-sample-outboundConnectors",
"ConnectorType": "Partner",
"RecipientDomains": [
"contoso.com"
],
"SmartHosts": [
"mail.contoso.com"
],
"TlsSettings": "EncryptionOnly",
"Comment": "EXONAUT sample outbound connector",
"Enabled": true
}

Notes: Doc-derived from Wiki + write-param allowlist; not live-captured. Body fields are Wiki-valid; values are illustrative.

Related: GET /exchange/v1.0/outboundConnectors

GET /exchange/v1.0/outboundConnectors/{key}

Section titled “GET /exchange/v1.0/outboundConnectors/{key}”

Get a single outboundConnectors entry by Identity.

Backing cmdlet: Get-OutboundConnector. Role: MailFlow.Read (Community).

Stub auto-generated example for GET /outboundConnectors/{key}. Backing cmdlet: Get-OutboundConnector with -Identity {key}. Returns the full entity body; 404 if the identity doesn’t resolve.

GET /exchange/v1.0/outboundConnectors/{key} HTTP/1.1
Authorization: Bearer {token}
HTTP/1.1 200 OK
{
"@odata.context": "http://localhost:5043/exchange/v1.0/$metadata#outboundConnectors/$entity"
}

Notes: Illustrative example derived from the cmdlet documentation, not a live capture: field names are real, values are placeholders.

Related: GET /exchange/v1.0/outboundConnectors

PATCH /exchange/v1.0/outboundConnectors/{key}

Section titled “PATCH /exchange/v1.0/outboundConnectors/{key}”

PATCH /outboundConnectors/{key} - partial update via Set-OutboundConnector. Known issue (slice 8a): after Set-OutboundConnector the runspace’s session can’t see the connector by Identity for the immediate re-fetch (EXO DC-stickiness). The Set landed; we return 200 + stub + X-Refetch-Skipped header instead of misleading 404.

Backing cmdlet: Set-OutboundConnector. Role: MailFlow.ReadWrite (Pro).

Parameter In Type Required Description
allAcceptedDomains body
cloudServicesMailEnabled body
comment body
connectorSource body
connectorType body
enabled body
isTransportRuleScoped body
mtaStsMode body
name body
recipientDomains body
routeAllMessagesViaOnPremises body
senderRewritingEnabled body
smartHosts body
smtpDaneMode body
testMode body
tlsDomain body
tlsSettings body
useMXRecord body
validationRecipients body
dryRun query bool (switch)

Partially updates an outbound connector via Set-OutboundConnector. The body carries only the SetWritable fields being changed; Identity comes from the URL key.

PATCH /exchange/v1.0/outboundConnectors/{key} HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
{
"comment": "Updated EXONAUT sample outbound connector",
"recipientDomains": [
"contoso.com",
"fabrikam.com"
],
"enabled": false
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"Id": "exonaut-sample-outboundConnectors",
"Identity": "exonaut-sample-outboundConnectors",
"Name": "exonaut-sample-outboundConnectors",
"Comment": "Updated EXONAUT sample outbound connector",
"RecipientDomains": [
"contoso.com",
"fabrikam.com"
],
"Enabled": false
}

Notes: Doc-derived from Wiki + write-param allowlist; not live-captured. Body fields are Wiki-valid; values are illustrative. Note: Set-OutboundConnector has a known post-write DC-affinity quirk; the API may return a 200 stub with an X-Refetch-Skipped header instead of the freshly re-fetched entity.

Related: GET /exchange/v1.0/outboundConnectors

DELETE /exchange/v1.0/outboundConnectors/{key}

Section titled “DELETE /exchange/v1.0/outboundConnectors/{key}”

DELETE /outboundConnectors/{key} - destructive, no soft-delete.

Backing cmdlet: Remove-OutboundConnector. Role: MailFlow.ReadWrite (Pro).

Parameter In Type Required Description
dryRun query bool (switch)

Permanently removes an outbound connector via Remove-OutboundConnector. This is destructive with no soft-delete.

DELETE /exchange/v1.0/outboundConnectors/{key} HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
HTTP/1.1 204 No Content

Notes: Doc-derived from Wiki + write-param allowlist; not live-captured. Body fields are Wiki-valid; values are illustrative.

Related: GET /exchange/v1.0/outboundConnectors

?dryRun=true previews of any write stay on Community.