Skip to content
Coritan Docs

Mail services Coritan manages

How the mail services Coritan manages, and your organization's relays, appear on the owning account's dashboard, and what you and Coritan can each change.

View as Markdown

A Coritan-managed mail service is a Mail Hosting or SMTP Relay setup that Coritan sets up and you do not order. It is one of two kinds:

  • Part of the platform itself, such as the relay that sends the platform's own emails or the team mailboxes on its own domains.
  • One of your organization's relays: the sending domain of your email marketing, or a relay Coritan set up for your organization's own mail.

It has no order and no bill. The API calls it an internal mail tenant, and its address and routes use the word internal.

Only the account that it belongs to sees these services. The platform's belong to the account that owns the platform's mail. An organization's belong to the account that owns the organization, so an admin or a member of the organization does not see them, and they move with the organization if its owner changes. They appear on that account's Mail Services page with its ordinary services. On any other account, a link to one opens the page-not-found screen.

In the Mail Services list, these services sit among the others, in name order. Each one's card has a line under its domain that gives its name followed by Managed by Coritan, and its Cost reads No bill. It has no payment or plan problem, and its menu has no Billing tab (Find your mail services). Select the domain to open it.

The page looks like a service's page, with these differences:

  • The header shows a Managed by Coritan badge beside the status and the product, and its number, such as #12.
  • A note below the header, A Coritan-managed mail service, says that it has no order or bill, and that Coritan sets its limits and removes what it set up.
  • A managed Mail Hosting service has the tabs Overview, Domains, Mailboxes, Aliases and Settings. A managed SMTP Relay has Overview, Domains, Credentials, API keys, Webhooks, Suppressions, Events and Send. Neither has a Billing tab.
  • On the Overview tab, the Service card shows Plan as Managed by Coritan, no billing and has no renewal date. The tab has no Tags card.
  • A managed SMTP Relay's Overview tab has no Sending IPs card. When the monthly allowance runs out, its warning says We refuse further emails until the next month starts or Coritan raises the allowance. and has no Change plan button.

Open webmail at the top of a managed Mail Hosting service opens webmail, as it does on any service. The Sending is paused and Under review notes appear as they do on a service (Sending reputation and deliverability). We never pause a platform service on its bounce or complaint rate: a rate over the pause line puts it Under review, and only Coritan staff can pause it. The relay your email marketing sends through is paused like any SMTP Relay.

The owning account uses each tab as it would on a service of the same kind, within its limits:

A mailbox that the platform created for a managed service starts with a password that nobody has seen. Set one on the mailbox's Password card before anyone signs in: open the mailbox from the Mailboxes tab and select Reset password (Reset a mailbox password).

Coritan can also name a domain without adding it, so that the owning account decides when the domain's mail moves. Add it on the Domains tab when you are ready (Move a domain that already receives mail).

We record every change the owning account makes to a managed service, from the dashboard or through the API, in the platform's audit log.

Coritan makes these changes:

A domain that Coritan set up
Only Coritan can remove it. The domain's page on the Domains tab shows The platform's seed file declares this domain, so only staff can remove it, from the admin console. under Remove this domain, and greys out Remove domain…. The Remove domain… button in the Danger zone card on the Settings tab is not greyed out, but the removal fails with the same message. Once you add a domain that Coritan names, it is locked in the same way.
The credential the platform sends its own mail with
On a managed SMTP Relay, the credential's row on the Credentials tab shows The platform sends its own mail with this credential. You can rotate it, but only staff can disable or delete it. Its Enabled switch is greyed out, and Revoke credential… shows Managed by Coritan. Rotate password… works: the platform's own mail uses the new password from its next message (Rotate a password).
The service's limits
Coritan sets how many domains, mailboxes and credentials it may hold, the storage for each mailbox, the monthly allowance and the hourly limit. On the Hourly limit card, Request limit increase… is greyed out, with the note Coritan sets the limits of a service it manages. The limits Coritan sets apply again each time the platform starts.

A relay that belongs to your organization works like the rest of this page, with these differences:

  • A relay Coritan set up for your organization's own mail has no domain or credential that only Coritan can remove. You add and remove its domains and credentials as on any SMTP Relay.
  • The relay your email marketing sends through has three things only the marketing setup changes. Its card reads Email marketing for and the name your organization has in its dashboard address.
The domain of the marketing relay
It is the sending domain you chose under Commerce, Email, Sending in your organization. The domain's page shows Your email marketing sends from this relay, so you change its domain under Commerce, Email, Sending in your organization. and Remove domain… fails with that message. Its DNS records are listed on the domain's page as on any domain, and Verify now checks them.
The credential of the marketing relay
It is the one your campaigns and automations send with. The credential's row on the Credentials tab shows Your email marketing sends with this credential. You can rotate it, but only staff can disable or delete it. Rotate password… works, and your campaigns use the new password from the next email.
Anything added by hand
You cannot add a domain, a credential or an API key to the marketing relay, send a message from its Send tab, or change its default message category. Each answers Your email marketing sends from this relay, so we set it up for you. Campaigns send through it from Commerce, Email, Campaigns. Email marketing checks consent, the unsubscribe link and your postal address on every campaign, and a message sent by hand would skip those checks.

The Events, Suppressions, Webhooks and Overview tabs of the marketing relay work as on any SMTP Relay, so you can read what happened to each email.

The routes under /api/v1/client/platform-mail/{tenant_id} are the same as a mail service's under /api/v1/client/mail/{service_id} and /api/v1/client/smtp-relay/{service_id}. They take the tenant ID where a service's routes take the service ID, and each operation takes the same body and answers in the same shape as on a service. The pages linked above document each operation. As on a service, an operation that belongs to the other product answers with a message that says so, such as Not an SMTP Relay service.

There is no list under platform-mail. GET /api/v1/client/mail/services lists internal tenants first, each with "internal": true, "service_id": null and its tenant_id (Mail Services). The list holds the platform's tenants that belong to your account and the relays of the organizations your account owns.

GET /api/v1/client/platform-mail/{tenant_id} returns the tenant's summary, as the summary of a Mail Hosting or SMTP Relay service does. kind is hosting or relay, label is the tenant's name and service is null.

Set the default message category with PATCH /api/v1/client/platform-mail/{tenant_id}/category:

Shell
curl -X PATCH https://api.coritan.com/api/v1/client/platform-mail/12/category \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"default_category": "marketing"}'
JSON
{"default_category": "marketing"}

default_category is transactional or marketing, and any other value answers 422.

In the answers to GET /api/v1/client/platform-mail/{tenant_id}/domains and GET /api/v1/client/platform-mail/{tenant_id}/credentials, each item carries locked. It holds the reason when only staff can remove the item, and null otherwise.

Request Status detail
DELETE …/domains/{domain_id} for a domain the seed file declares 409 The platform's seed file declares this domain, so only staff can remove it, from the admin console.
PATCH …/credentials/{account_id}/enabled with "enabled": false, or DELETE …/credentials/{account_id}, for the platform's sending credential 409 The platform sends its own mail with this credential. You can rotate it, but only staff can disable or delete it.
POST …/limits/increase-request 409 Staff set the limits of an internal tenant, from the admin console.
DELETE …/domains/{domain_id} on your organization's marketing relay 409 Your email marketing sends from this relay, so you change its domain under Commerce, Email, Sending in your organization.
PATCH …/credentials/{account_id}/enabled with "enabled": false, or DELETE …/credentials/{account_id}, for the marketing relay's credential 409 Your email marketing sends with this credential. You can rotate it, but only staff can disable or delete it.
POST …/domains, POST …/credentials, POST …/api-keys or POST …/messages, or PATCH …/category, on your organization's marketing relay 409 Your email marketing sends from this relay, so we set it up for you. Campaigns send through it from Commerce, Email, Campaigns.
Any request with a tenant ID that is not an internal tenant of your account or of an organization you own 404 Mail service not found

API operations on this page

MethodPathWhat it does
GET/api/v1/client/platform-mail/{tenant_id}Get summary
GET/api/v1/client/platform-mail/{tenant_id}/domainsList domains
POST/api/v1/client/platform-mail/{tenant_id}/domainsAdd domain
DELETE/api/v1/client/platform-mail/{tenant_id}/domains/{domain_id}Remove domain
PATCH/api/v1/client/platform-mail/{tenant_id}/domains/{domain_id}/dmarcSet DMARC
GET/api/v1/client/platform-mail/{tenant_id}/domains/{domain_id}/recordsDomain records
POST/api/v1/client/platform-mail/{tenant_id}/domains/{domain_id}/verifyVerify domain
PATCH/api/v1/client/platform-mail/{tenant_id}/categorySet category
GET/api/v1/client/platform-mail/{tenant_id}/mailboxesList mailboxes
POST/api/v1/client/platform-mail/{tenant_id}/mailboxesCreate mailbox
DELETE/api/v1/client/platform-mail/{tenant_id}/mailboxes/{account_id}Delete mailbox
GET/api/v1/client/platform-mail/{tenant_id}/mailboxes/{account_id}/app-passwordsMailbox app passwords
POST/api/v1/client/platform-mail/{tenant_id}/mailboxes/{account_id}/app-passwordsMailbox app password create
DELETE/api/v1/client/platform-mail/{tenant_id}/mailboxes/{account_id}/app-passwords/{credential_id}Mailbox app password delete
PATCH/api/v1/client/platform-mail/{tenant_id}/mailboxes/{account_id}/enabledMailbox enabled
GET/api/v1/client/platform-mail/{tenant_id}/mailboxes/{account_id}/importsMailbox imports
POST/api/v1/client/platform-mail/{tenant_id}/mailboxes/{account_id}/importsMailbox import start
POST/api/v1/client/platform-mail/{tenant_id}/mailboxes/{account_id}/imports/oauthMailbox import sign in
POST/api/v1/client/platform-mail/{tenant_id}/mailboxes/{account_id}/imports/uploadMailbox import upload
POST/api/v1/client/platform-mail/{tenant_id}/mailboxes/{account_id}/imports/{import_id}/{action}Mailbox import steer
POST/api/v1/client/platform-mail/{tenant_id}/mailboxes/{account_id}/passwordMailbox password
PATCH/api/v1/client/platform-mail/{tenant_id}/mailboxes/{account_id}/quotaMailbox quota
GET/api/v1/client/platform-mail/{tenant_id}/mailboxes/{account_id}/sessionsMailbox sessions
DELETE/api/v1/client/platform-mail/{tenant_id}/mailboxes/{account_id}/sessionsMailbox sessions end
DELETE/api/v1/client/platform-mail/{tenant_id}/mailboxes/{account_id}/sessions/{session_id}Mailbox session end
POST/api/v1/client/platform-mail/{tenant_id}/mailboxes/{account_id}/totpMailbox totp enable
DELETE/api/v1/client/platform-mail/{tenant_id}/mailboxes/{account_id}/totpMailbox totp disable
GET/api/v1/client/platform-mail/{tenant_id}/migrationsList the service's migrations
POST/api/v1/client/platform-mail/{tenant_id}/migrations/cpanelMove a cPanel account's mail here
POST/api/v1/client/platform-mail/{tenant_id}/migrations/cpanel/discoverFind what a cPanel account holds and what moving it here would do
GET/api/v1/client/platform-mail/{tenant_id}/migrations/{migration_id}Get one migration and how far each of its mailboxes has got
POST/api/v1/client/platform-mail/{tenant_id}/migrations/{migration_id}/finishFinish a migration and forget the old mailboxes' passwords
POST/api/v1/client/platform-mail/{tenant_id}/migrations/{migration_id}/syncBring in what reached the old mailboxes since the migration started
GET/api/v1/client/platform-mail/{tenant_id}/aliasesList aliases
POST/api/v1/client/platform-mail/{tenant_id}/aliasesCreate alias
DELETE/api/v1/client/platform-mail/{tenant_id}/aliases/{account_id}Delete alias
GET/api/v1/client/platform-mail/{tenant_id}/credentialsList credentials
POST/api/v1/client/platform-mail/{tenant_id}/credentialsCreate credential
DELETE/api/v1/client/platform-mail/{tenant_id}/credentials/{account_id}Delete credential
PATCH/api/v1/client/platform-mail/{tenant_id}/credentials/{account_id}/enabledCredential enabled
POST/api/v1/client/platform-mail/{tenant_id}/credentials/{account_id}/rotateRotate credential
GET/api/v1/client/platform-mail/{tenant_id}/api-keysList API keys
POST/api/v1/client/platform-mail/{tenant_id}/api-keysCreate API key
DELETE/api/v1/client/platform-mail/{tenant_id}/api-keys/{key_id}Revoke API key
GET/api/v1/client/platform-mail/{tenant_id}/suppressionsList suppressions
POST/api/v1/client/platform-mail/{tenant_id}/suppressionsAdd suppression
DELETE/api/v1/client/platform-mail/{tenant_id}/suppressions/{suppression_id}Remove suppression
GET/api/v1/client/platform-mail/{tenant_id}/webhooksList webhooks
POST/api/v1/client/platform-mail/{tenant_id}/webhooksCreate webhook
DELETE/api/v1/client/platform-mail/{tenant_id}/webhooks/{webhook_id}Delete webhook
POST/api/v1/client/platform-mail/{tenant_id}/messagesSend message
GET/api/v1/client/platform-mail/{tenant_id}/eventsList events
GET/api/v1/client/platform-mail/{tenant_id}/usageUsage report
GET/api/v1/client/platform-mail/{tenant_id}/reputationReputation report
POST/api/v1/client/platform-mail/{tenant_id}/limits/increase-requestRequest limit increase