POST /v1/mail/services/{mailServiceId}/provider
Move a domain's email to a different provider.
ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ
បញ្ជូនសោ API ជា bearer token។ សោនេះត្រូវតែមានសិទ្ធិ mail.manage។ សោដែលគ្មានសិទ្ធិនេះនឹងត្រូវបដិសេធដោយកូដ 403 មិនមែន 404 ទេ។
ចំនុចបញ្ចប់នេះមិនត្រូវការលេខសម្គាល់ស្ថាប័នទេ។ ពស័្ដកូនរបស់អ្នករួចហើយកំណត់អត្តសញ្ញាណស្ថាប័នដែលវាជាកម្មសិទ្ធិ ហើយការឆ្លើយតបគឺត្រូវបានកំណត់វិសាលភាពទៅតាមនោះ។
សាកល្បង
ជំនួសអ្វីមួយនៅក្នុងសញ្ញាពងក្រពើ < > ដោយប្រើតម្លៃផ្ទាល់ខ្លួនរបស់អ្នក ហើយជំនួសកន្លែងរក្សាទុកសោដោយប្រើសោចេញពីផ្ទាំងគ្រប់គ្រងរបស់អ្នក។
curl -X POST https://api.zinndigital.com/v1/mail/services/{mailServiceId}/provider \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "provider": <MailProvider> }'បានចូលគណនីរួចហើយមែនទេ? កុងសូល API ក្នុងផ្ទាំងគ្រប់គ្រងរបស់អ្នក បំពេញលេខសម្គាល់ស្ថាប័នពិតប្រាកដរបស់អ្នក និងសោផ្ទាល់ខ្លួនរបស់អ្នក ហើយដំណើរការសំណើទល់នឹង API ផ្ទាល់ ដូច្នេះអ្នកអាចមើលឃើញការឆ្លើយតបពិតប្រាកដ។ បើកចំណុចបញ្ចប់នេះក្នុងកុងសូល API
ព័ត៌មានលម្អិត
Repoints this domain at another mail provider — our own email, Google Workspace or Microsoft 365 — and, when moving **away from ours**, destroys the mailboxes we were hosting for it. ⛔ **Not the same as `DELETE`, and the difference is the post-condition.** A delete ends with no mail service at all; a switch ends with a **live** one on the new provider, publishing that provider's records. Using the delete for this would leave the domain with no email a moment after the customer chose some. **The order is the safety property:** the DNS records are repointed FIRST, and the mailboxes destroyed second. The reverse loses mail — between a destroy and a repoint the MX still names mailboxes that no longer exist, and everything sent in that window bounces. Doing it this way costs a brief period in which both could receive, which is the harmless failure. `confirm_fqdn` — the domain typed back — is **required when the switch destroys mailboxes we run**, and ignored otherwise. Owner ruling 2026-08-14: type the domain, no grace period. The mailboxes and their contents are gone at the vendor the moment this runs. Switching to the provider a domain is already on is a no-op that returns the service, so a retry is idempotent. Requires `mail.manage`.
ប៉ារ៉ាម៉ែត្រ
| ឈ្មោះ | ប្រភេទ | តម្រូវការ | តើវាជាអ្វី |
|---|---|---|---|
mailServiceId (path) | Uuid | បាទ/ចាស | Email service ID (UUIDv7). |
សំណើរបស់រាងកាយ
| ឈ្មោះ | ប្រភេទ | តម្រូវការ | តើវាជាអ្វី |
|---|---|---|---|
provider | MailProvider | បាទ/ចាស | Which provider serves a domain's mail. `custom` is **the reseller's own provider** (W40-MAIL, owner ruling 2026-09-06): a white-label reseller sells mail they buy elsewhere, dec… |
provider_config | MailProviderConfig | null | ទេ | Required in effect when `provider` is `custom` (an empty MX list is refused); ignored otherwise. A `custom` → `custom` call with **different** values is a re-declaration — the c… |
confirm_fqdn | string | ទេ | The domain, typed back by the customer. **Required when the switch destroys mailboxes we host** — i.e. when moving away from `zinn` on a domain that has any — and ignored otherw… |
ផ្អាកដំណើរការ
| ឈ្មោះ | ប្រភេទ | តម្រូវការ | តើវាជាអ្វី |
|---|---|---|---|
id | Uuid | បាទ/ចាស | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
fqdn | string | បាទ/ចាស | The domain the mailboxes are on. |
provider_config | MailProviderConfig | null | ទេ | The `custom` provider's declared values, served back so the domain screen can show and edit what was declared. `null` on every other provider, whose values are documented and de… |
site | MailServiceSite | null | ទេ | The site currently serving this domain, or `null` when no site does. **Derived from the hostname, never stored**: mail attaches to a domain and a domain outlives the site on it,… |
mailbox_provisioning | MailboxProvisioning | បាទ/ចាស | Whether **we** pre-create a starter mailbox on this domain. `managed` — we make one when the domain is provisioned (the Footprint-Free/PBN line and our own fleet); `self_service… |
mail_only | boolean | បាទ/ចាស | **This domain uses us for mail and nothing else** — an active mail service on a hostname no website of ours serves. Published as one server-side answer because more than one con… |
domain_id | Uuid | null | ទេ | The registered domain this serves, when we hold the registration. |
status | MailServiceStatus | បាទ/ចាស | A mail service's lifecycle state. |
provider | MailProvider | បាទ/ចាស | Which provider serves a domain's mail. `custom` is **the reseller's own provider** (W40-MAIL, owner ruling 2026-09-06): a white-label reseller sells mail they buy elsewhere, dec… |
mailbox_quota_mb | integer | បាទ/ចាស | Size of each mailbox in MB, captured when the service was created. |
mailbox_limit | integer | បាទ/ចាស | Mailboxes allowed on this domain; `-1` is uncapped. Captured when the service was created; a later downgrade is enforced against the live plan as well, so the number actually ap… |
mailboxes_used | integer | បាទ/ចាស | How many mailboxes currently consume the allowance. |
dns_applied_at | object | ទេ | When the mail DNS was last published. `null` means never — mailboxes that exist but receive nothing, which is the one state a customer must be told about. |
created_at | string | បាទ/ចាស | — |
កំហុសដែលចំណុចបញ្ចប់នេះអាចបង្វិលត្រឡប់មកវិញ
401 · 403 · 404 · 409 · 422 · 429 · 503