پرش به مستندات
API

اتصال‌های DNS

حساب‌های ارائه‌دهندهٔ DNS که به فضای کاری متصل‌اند و OpenEmail از راه آن‌ها رکوردهای یک دامنه را خودش می‌نویسد. هر حساب در برنامه متصل می‌شود، چون ارائه‌دهنده از شخص می‌خواهد وارد شود.

GET/dns-connections

هر کدام از 3 فراخوانی را روی فضای کاری شما اجرا می‌کند.

GET /dns-connections

حساب‌های ارائه‌دهندهٔ DNS که به فضای کاری متصل‌اند و OpenEmail از راه آن‌ها رکوردهای یک دامنه را خودش می‌نویسد. هر حساب در برنامه متصل می‌شود، چون ارائه‌دهنده از شخص می‌خواهد وارد شود.

فهرست اتصال‌ها

به domains:read نیاز دارد. همهٔ اتصال‌ها، از جمله آن‌هایی که قطع شده‌اند، همراه با دامنه‌هایی که هر کدام به آن‌ها سرویس می‌دهد. وقتی این سرور اصلاً نمی‌تواند ارائه‌دهنده‌ای را متصل کند، configured برابر false است.

curl
curl "$OE/dns-connections" -H "$AUTH"
پاسخ
{  "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 تا وقتی OpenEmail اجازه دارد از راه اتصال بنویسد active است، وقتی ارائه‌دهنده می‌خواهد حساب در برنامه دوباره وصل شود needs-reauth، پس از قطع شدن اتصال revoked و وقتی آخرین فراخوانی ناموفق بوده error.

خواندن یک اتصال

به domains:read نیاز دارد. GET /dns-connections/{id} آنچه را قطع اتصال به جا می‌گذارد اضافه می‌کند: busy دامنه‌هایی را نام می‌برد که همگام‌سازی روی آن‌ها در جریان است، و keepsMail دامنه‌های تأییدشده‌ای را که وقتی رکوردهایشان برداشته شود دیگر نامه دریافت نمی‌کنند.

curl
curl "$OE/dns-connections/dnsl_3f9a1c2e7b4d4e6f8a0b2c3d" -H "$AUTH"
پاسخ
{  "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"]}

قطع یک اتصال

به domains:write نیاز دارد. DELETE /dns-connections/{id} رکوردهایی را که از راه اتصال نوشته شده‌اند برمی‌دارد، هر دامنه‌ای را که به آن سرویس می‌دهد جدا می‌کند و اتصال را نزد ارائه‌دهنده باطل می‌کند. دامنهٔ تأییدشده‌ای که رکوردهایش برداشته شوند دیگر نامه دریافت نمی‌کند، پس اول اتصال را بخوانید.

curl
curl -X DELETE "$OE/dns-connections/dnsl_3f9a1c2e7b4d4e6f8a0b2c3d" -H "$AUTH"
پاسخ
{  "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": [] }}

حذف اتصالی که از پیش قطع شده، وقتی هیچ دامنه و هیچ رکوردی روی آن نمانده باشد، آن را از فهرست برمی‌دارد و removed برابر true است. اگر هنوز چیزی روی آن باشد، فراخوانی 409 dns_connection_in_use است.

اگر همگام‌سازی روی یکی از دامنه‌هایش در جریان باشد، درخواست با 409 dns_busy رد می‌شود و چیزی باطل نمی‌شود.

کلید یا برنامه‌ای که به نشانی‌ها یا دامنه‌های مشخصی محدود است با 422 capability_unsupported رد می‌شود، و برنامه‌ای که از طرف یک عضو کار می‌کند به workspace:manage در نقش آن عضو هم نیاز دارد.

توکن دسترسی OAuth برای این فراخوانی کد تأیید هویت لازم دارد. تا برنامه در 60 دقیقهٔ گذشته کدی را تأیید نکرده، فراخوانی 403 step_up_required برمی‌گرداند و چیزی را تغییر نمی‌دهد. از کلید API هرگز خواسته نمی‌شود. صفحهٔ احراز هویت نشان می‌دهد چطور کد بخواهید و آن را تأیید کنید.

مرجع