Zur Dokumentation springen
API

DNS-Verbindungen

Die mit dem Workspace verbundenen Konten bei DNS-Anbietern, über die OpenEmail die Einträge einer Domain selbst schreibt. Ein solches Konto wird in der App verbunden, weil der Anbieter die Person bittet, sich anzumelden.

GET/dns-connections

Führt jeden der 3 Aufrufe in Ihrem Workspace aus.

GET /dns-connections

Die mit dem Workspace verbundenen Konten bei DNS-Anbietern, über die OpenEmail die Einträge einer Domain selbst schreibt. Ein solches Konto wird in der App verbunden, weil der Anbieter die Person bittet, sich anzumelden.

Die Verbindungen auflisten

Erfordert domains:read. Jede Verbindung, getrennte eingeschlossen, mit den Domains, die jede bedient. configured ist false, wenn dieser Server überhaupt keinen Anbieter verbinden kann.

curl
curl "$OE/dns-connections" -H "$AUTH"
Antwort
{  "object": "list",  "configured": true,  "data": [    {      "object": "dns_connection",      "id": "dnsl_3f9a1c2e7b4d4e6f8a0b2c3d",      "provider": "cloudflare",      "subject": "[email protected]",      "accounts": [{ "id": "4f1c2b3a5d6e7f8091a2b3c4d5e6f708", "name": "Acme" }],      "status": "active",      "lastVerifiedAt": "2026-09-30T08:00:00.000Z",      "lastError": null,      "createdAt": "2026-09-01T10:12:00.000Z",      "domains": [        {          "domainId": "b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f",          "domain": "acme.com",          "zoneId": "023e105f4ecef8ad9ca31a8372d0c353",          "zoneName": "acme.com",          "state": "ready",          "records": 7,          "keepsMail": true,          "busy": false        }      ],      "records": 7,      "removable": false    }  ]}

status ist active, solange OpenEmail über die Verbindung schreiben darf, needs-reauth, wenn der Anbieter möchte, dass das Konto in der App erneut verbunden wird, revoked, sobald sie getrennt wurde, und error, wenn der letzte Aufruf fehlgeschlagen ist.

Eine Verbindung lesen

Erfordert domains:read. GET /dns-connections/{id} ergänzt, was ihr Trennen hinterlassen würde: busy nennt die Domains, auf denen gerade eine Synchronisierung läuft, und keepsMail die verifizierten Domains, die keine Mail mehr empfangen, sobald ihre Einträge entfernt werden.

curl
curl "$OE/dns-connections/dnsl_3f9a1c2e7b4d4e6f8a0b2c3d" -H "$AUTH"
Antwort
{  "object": "dns_connection",  "id": "dnsl_3f9a1c2e7b4d4e6f8a0b2c3d",  "provider": "cloudflare",  "subject": "[email protected]",  "accounts": [{ "id": "4f1c2b3a5d6e7f8091a2b3c4d5e6f708", "name": "Acme" }],  "status": "active",  "lastVerifiedAt": "2026-09-30T08:00:00.000Z",  "lastError": null,  "createdAt": "2026-09-01T10:12:00.000Z",  "domains": [    {      "domainId": "b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f",      "domain": "acme.com",      "zoneId": "023e105f4ecef8ad9ca31a8372d0c353",      "zoneName": "acme.com",      "state": "ready",      "records": 7,      "keepsMail": true,      "busy": false    }  ],  "records": 7,  "removable": false,  "busy": [],  "keepsMail": ["acme.com"]}

Eine Verbindung trennen

Erfordert domains:write. DELETE /dns-connections/{id} nimmt die über die Verbindung geschriebenen Einträge zurück, löst jede Domain, die sie bedient, von ihr und widerruft sie beim Anbieter. Eine verifizierte Domain, deren Einträge entfernt werden, empfängt keine Mail mehr, lesen Sie die Verbindung also zuerst.

curl
curl -X DELETE "$OE/dns-connections/dnsl_3f9a1c2e7b4d4e6f8a0b2c3d" -H "$AUTH"
Antwort
{  "object": "dns_connection",  "id": "dnsl_3f9a1c2e7b4d4e6f8a0b2c3d",  "provider": "cloudflare",  "subject": "[email protected]",  "accounts": [{ "id": "4f1c2b3a5d6e7f8091a2b3c4d5e6f708", "name": "Acme" }],  "status": "revoked",  "lastVerifiedAt": "2026-09-30T08:00:00.000Z",  "lastError": null,  "createdAt": "2026-09-01T10:12:00.000Z",  "removed": false,  "confirmed": true,  "detached": { "domains": 1, "detached": 1, "removed": 7, "rewritten": 0, "pending": 0, "left": [] }}

Eine bereits getrennte Verbindung zu löschen entfernt sie aus der Liste, sobald keine Domain und kein Eintrag mehr an ihr hängt, und removed ist true. Hängt noch etwas an ihr, ergibt der Aufruf 409 dns_connection_in_use.

Läuft auf einer ihrer Domains gerade eine Synchronisierung, wird der Aufruf mit 409 dns_busy abgelehnt, und nichts wird widerrufen.

Ein auf bestimmte Adressen oder Domains beschränkter Schlüssel oder eine so beschränkte App wird mit 422 capability_unsupported abgelehnt, und eine App, die für ein Mitglied handelt, braucht außerdem workspace:manage in dessen Rolle.

Ein OAuth-Zugriffstoken braucht für diesen Aufruf einen Bestätigungscode. Solange die App in den letzten 60 Minuten keinen bestätigt hat, antwortet der Aufruf mit 403 step_up_required und ändert nichts. Ein API-Schlüssel wird nie gefragt. Die Seite Authentifizierung zeigt, wie Sie einen Code anfordern und bestätigen.

Referenz