إدارة فرق White Label عبر API وMCP في TrekMail

ادع العملاء وتحكم في وصول النطاقات وعلّق الأعضاء أو استعدهم وراجع نشاط White Label عبر نقاط REST محددة النطاق وأدوات MCP.

تفاصيل المقال

النوع والصعوبة والخطط ومعلومات آخر تحديث.

▼
النوع
مرجع
الصعوبة
متوسط
الخطط
Pro · Agency · + White Label add-on
آخر تحديث
15 أكتوبر 2026

يمكن إدارة حسابات White Label دون الرجوع إلى لوحة التحكم. تغطي REST API وخادم MCP حالة إعداد الحساب والعملاء وأعضاء الفريق والأدوار والوصول إلى النطاقات والدعوات والتعليق والإزالة والاستعادة وحدود تخزين العملاء وسجل النشاط. وتشمل مجموعة أدوات White Label نفسها العلامة التجارية، مع دليل العلامة التجارية الخاص بها.

الحد المهم بسيط: لا يمكن للاتصال منح وصول أكبر مما يملكه الشخص الذي يقف وراءه. لا يستطيع المدير المقيّد بنطاقات معينة دعوة شخص إلى نطاقات غير مرتبطة، ولا يستطيع الدور المخصص منح صلاحيات لا يملكها المستدعي.

الميزات المتاحة

يتضمن كتالوج MCP الكامل الآن 284 أداة عبر stdio وما يصل إلى 283 أداة عبر HTTP المستضاف. تساهم White Label بعدد 23 أداة: سبع للعلامة التجارية و13 لإدارة الحساب والأعضاء والنشاط وثلاث لحدود تخزين العملاء.

لا تُحمّل هذه الأدوات للجميع. يقيّم TrekMail استحقاق White Label الحالي للحساب، وعضوية الشخص الحالية، والرمز أو تفويض OAuth، وأي قيد على النطاق، ومجموعات الأدوات المحددة، وإعدادات الأمان المحلية قبل إنشاء tools/list. لا يتلقى الاتصال الذي لا يملك وصول White Label المخططات مطلقا.

حالات الاستحقاق

الحالة المالك الأعضاء المفوضون الكتابة
نشط وصول كامل تسمح به النطاقات وصول تسمح به النطاقات والعضوية متاحة
مهلة الإلغاء وصول استرداد للقراءة فقط إزالة وصول White Label محظورة
غير متاح لا وصول إلى White Label API أو MCP لا وصول إلى White Label API أو MCP محظورة

عند توفر وصول قراءة White Label، استدع GET /api/v1/white-label أو أداة get_white_label للتمييز بين active وgrace المخصص للقراءة فقط، ولرؤية تقدم الإعداد وموعد انتهاء المهلة. لا يستطيع الحساب غير المتاح استدعاء نقطة النهاية هذه. عندما تظل بيانات اعتماد محفوظة تشير إلى نطاق White Label لم يعد الحساب قادرا على استخدامه، تعيد API الرمز scope_blocked_by_entitlement وتوضح مكان إعادة التفعيل.

النطاقات

النطاق ما يسمح به
branding:read قراءة إعدادات العلامة والأصول والمضيفين وسجلات DNS وحالة الإعداد
branding:write تغيير العلامة التجارية والأصول والمعاينات والمضيفين وفحوص DNS
members:read قراءة العملاء وأعضاء الفريق والأدوار ووصول النطاقات وحدود تخزين العملاء وكتالوج الوصول
members:write دعوة الأشخاص، وتحديث الوصول أو تعليقه أو استئنافه أو إزالته أو استعادته، وضبط حدود تخزين العملاء
activity:read قراءة نشاط حساب White Label وعمليات دخول الأعضاء

تحتاج نقطة نهاية نشاط العضو إلى activity:read وmembers:read معا، لأن استجابتها تحتوي على سجل عضو بالإضافة إلى النشاط. يستخدم اتصال OAuth المستضاف محدد tools:white_label لطلب مجموعة الأدوات هذه؛ وتظل نطاقات REST الفعلية مقيدة بالحساب والعضوية.

بالنسبة إلى خادم MCP مستضاف ذاتيا، أضف white_label إلى TREKMAIL_TOOLSETS عند استخدام قائمة سماح لمجموعات الأدوات. تحترم أدوات الكتابة أيضا بوابات الأمان المحلية الموضحة أدناه.

نقاط نهاية REST

تقع جميع المسارات تحت https://trekmail.net/api/v1.

الطريقة المسار النطاق الغرض
GET /white-label branding:read قراءة الاستحقاق والعلامة الافتراضية وتقدم الإعداد وحالة النطاقات المتاحة
GET /white-label/access-catalog members:read قراءة الأدوار ومجموعات الصلاحيات والصلاحيات القابلة للمنح والنطاقات المتاحة
GET /white-label/members members:read عرض الأعضاء والدعوات مع البحث ومرشحات الحالة
POST /white-label/members members:write دعوة عميل أو زميل في الفريق
GET /white-label/members/{id} members:read قراءة عضو واحد وعملياته التالية المسموح بها
PATCH /white-label/members/{id} members:write تغيير الدور أو وصول النطاقات أو الصلاحيات المخصصة أو الملاحظة
POST /white-label/members/{id}:suspend members:write إيقاف الوصول فورا وإبطال مفاتيح العضو
POST /white-label/members/{id}:resume members:write استئناف عضوية معلقة
POST /white-label/members/{id}:resend-invitation members:write استبدال دعوة معلقة وإرسال دعوة جديدة
DELETE /white-label/members/{id} members:write إزالة الوصول وإبطال مفاتيح العضو
POST /white-label/members/{id}:restore members:write استعادة عضوية مزالة دون إحياء المفاتيح القديمة
GET /white-label/activity activity:read قراءة نشاط الحساب، مع ترشيح اختياري حسب الإجراء أو العضو
GET /white-label/members/{id}/activity activity:read + members:read قراءة إجراءات عضو واحد وعمليات دخوله الحديثة
GET /white-label/client-limits members:read عرض حدود تخزين العملاء مع المساحة المحجوزة والمشتركة والمستخدمة
POST /white-label/client-limits members:write منح نطاقات حدّ تخزين، أو تغيير الحدّ الذي تتشاركه بالفعل
GET /white-label/client-limits/{id} members:read قراءة حدّ تخزين واحد لعميل
PATCH /white-label/client-limits/{id} members:write تغيير حجم الحدّ أو مجموعة نطاقاته كاملة أو كليهما
DELETE /white-label/client-limits/{id} members:write إزالة حدّ؛ تعود نطاقاته إلى تخزين الحساب

تتطلب كل عملية كتابة في هذا الجدول ترويسة Idempotency-Key. يؤدي تكرار الطلب نفسه بالمفتاح نفسه إلى إعادة النتيجة الآمنة الأصلية؛ وتُحجب الأسرار المستخدمة مرة واحدة في إعادة التشغيل، مثل رمز الدعوة. تؤدي إعادة استخدام مفتاح مع نص طلب مختلف إلى idempotency_mismatch.

اقرأ كتالوج الوصول أولا

لا تضع صلاحيات الأدوار كثوابت في عملية التكامل. استدع كتالوج الوصول قبل دعوة أو تغيير في الوصول. تعكس علامات grantable عضوية المستدعي الحالية، ويمكن أن تتغير عندما يعدّل المالك تلك العضوية.

الأدوار المتاحة حاليا للدعوات الجديدة هي:

  • client - يدير النطاقات وصناديق البريد المخصصة دون رؤية علاقة الموزع الخاصة مع TrekMail.
  • webmail_only - يظهر في قائمة الفريق لكنه لا يتلقى صلاحيات لوحة التحكم.
  • domain_admin - يدير النطاقات المخصصة وDNS الخاص بها، وليس صناديق البريد.
  • mailbox_operator - يدير صناديق البريد داخل النطاقات المخصصة، وليس النطاقات نفسها.
  • read_only - يمكنه فحص واجهة الحساب المسموح بها دون تغييرها.
  • custom - يتلقى فقط الصلاحيات المدرجة في permissions.

تتطلب بعض الأدوار domain_ids صريحة؛ ويمكن لأدوار أخرى استخدام all_domains. يخبرك كتالوج الوصول بالقاعدة المطبقة. إذا حاول المستدعي منح دور أو صلاحية أو مجموعة نطاقات أوسع، يعيد TrekMail الرمز scope_blocked_by_membership بدلا من تضييق الدعوة بصمت.

دعوة عميل

curl -s -X POST "https://trekmail.net/api/v1/white-label/members" \
  -H "Authorization: Bearer tm_live_your_token" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: invite-northwind-admin-20260904" \
  -d '{
    "email": "admin@northwind.example",
    "role": "client",
    "all_domains": false,
    "domain_ids": [123, 124],
    "note": "Northwind primary contact"
  }'

تتضمن الاستجابة العضو، وما إذا نجح تسليم البريد الإلكتروني، وعنوان URL للدعوة يستخدم مرة واحدة. لا تمحو مشكلة التسليم الدعوة، إذ يستطيع المالك نسخ عنوان URL أو إعادة إرسالها لاحقا.

للدور المخصص، اقرأ grantable_permissions من كتالوج الوصول وأرسل القيم المحددة في permissions. يلزم إذن واحد على الأقل.

متابعة حالة العضو

تتضمن كل استجابة عضو allowed_operations. استخدم هذه القائمة بدلا من التخمين:

  • يمكن تحديث الدعوة المعلقة أو تعليقها أو إعادة إرسالها أو إزالتها.
  • يمكن تحديث العضو النشط أو تعليقه أو إزالته.
  • يمكن تحديث العضو المعلق أو استئنافه أو إزالته.
  • يمكن استعادة العضو المزال.
  • يظهر صف المالك للسياق، لكن لا يمكن تغييره عبر نقاط النهاية هذه.

تُرشح القائمة أيضا للمستدعي الحالي. تكون فارغة للاتصال المخصص للقراءة فقط، ولعضوية المستدعي نفسه، وللأعضاء الذين تتجاوز صلاحياتهم ما يمكن للمستدعي إدارته.

لا يستطيع المستدعون إزالة أنفسهم أو تعليق أنفسهم. ولا يستطيع المستدعون المفوضون إدارة عضو يكون وصوله أوسع من وصولهم. تعيد الانتقالات غير الصالحة membership_state_conflict مع تلميح لإعادة قراءة العضو.

يؤدي تعليق شخص أو إزالته إلى إبطال مفاتيح API وصندوق البريد المنشأة ضمن تلك العضوية. لا يؤدي استئناف العضوية أو استعادتها إلى إعادة تلك المفاتيح القديمة؛ بل يجب على الشخص إعادة الاتصال أو إنشاء بيانات اعتماد جديدة.

حدود النشاط والخصوصية

يعيد GET /white-label/activity الدعوات وتغييرات الأدوار والنطاقات وعمليات التعليق والإزالة والاستعادة وإجراءات الأمان ذات الصلة. رشّح باستخدام action وmember_id وper_page.

يجمع GET /white-label/members/{id}/activity إجراءات حساب ذلك العضو مع عمليات الدخول الحديثة، بما فيها الوقت وعنوان IP والموقع التقريبي والمتصفح ونظام التشغيل ونوع الجهاز. يتطلب هذا المسار نطاقي القراءة كليهما عن قصد. لا يستطيع المستدعون المقيدون بالنطاقات طلب سوى الأعضاء الموجودين بالكامل داخل حدود نطاقاتهم؛ ويعاد العضو غير المتاح بالرمز 404، لذلك لا تكشف نقطة النهاية عن وجود مستأجر أو عميل آخر.

حدود تخزين العملاء

يمنح حدّ تخزين العميل نطاقات العميل مساحة واحدة بوحدة MB لصناديق البريد وDrive فيها. لمعرفة طريقة عمله في لوحة التحكم، راجع حدّ تخزين خاص لكل عميل من عملائك. الحدّ الذي لا يملك أحد في الفريق نطاقاته، مثل حدّ أُنشئ هنا قبل دعوة العميل، يظهر في صفحة الفريق والعملاء تحت حدود تخزين بلا عميل.

  • القراءة تتطلب members:read. المستدعي المقيد ببعض النطاقات لا يرى إلا الحدود التي تكون كل نطاقاتها من نطاقاته. أما حدّ عميل آخر، أو حدّ يشمل أيضا نطاقا خارج صلاحياته، فلا يظهر في القائمة ويعيد 404 كمعرّف غير موجود.
  • التغيير يتطلب members:write ومستدعيا يصل إلى كل نطاقات الحساب. يتلقى العضو المقيد ببعض النطاقات 403 scope_blocked_by_membership، ويتلقى المفتاح المقيد ببعض النطاقات 403 token_resource_constrained.
  • POST يعمل مثل صفحة الفريق والعملاء: النطاقات التي ليس لها حدّ تحصل على حدّ جديد (201)؛ وإذا كانت النطاقات تتشارك حدّا بالفعل، يتغير ذلك الحدّ وتنضم إليه النطاقات المحددة التي ليس لها حدّ (200).
  • PATCH يقبل storage_limit_mb أو domain_ids أو كليهما. يستبدل domain_ids المجموعة كاملة، وتعود النطاقات غير المذكورة إلى تخزين الحساب.
  • كل حدّ يعيد storage_limit_mb وdomain_ids وallocated_mb (الأحجام الثابتة لصناديق البريد) وpending_invites_mb (الأحجام الثابتة للدعوات المفتوحة) وpool_mb (ما تتشاركه صناديق البريد ذات التخزين المشترك) وused_bytes وmember_ids.

يحمل كل سجل عضو الحقل client_limit: الحدّ الواحد الذي تقع تحته كل نطاقات العضو، بالحقول id وstorage_limit_mb وallocated_mb وused_bytes، أو null. وبالنسبة إلى المستدعي المقيد ببعض النطاقات، تكون قيمته null أيضا عندما يشمل ذلك الحدّ نطاقا خارج صلاحياته.

يُضبط الحجم الخاص لصندوق البريد عبر PATCH /mailboxes/{id}/storage (mailboxes:write) أو الأداة set_mailbox_storage، كما يشرح دليل REST API.

أدوات MCP

الأداة البوابة الغرض
get_white_label Read الاستحقاق والعلامة وتقدم الإعداد والنطاقات
get_white_label_access_catalog Read الأدوار والصلاحيات والنطاقات التي يمكن للمستدعي منحها
list_white_label_members Read البحث عن العملاء والأعضاء والدعوات أو ترشيحها
get_white_label_member Read قراءة عضو واحد والعمليات التالية المسموح بها
invite_white_label_member Sending إنشاء دعوة وإرسالها بالبريد الإلكتروني
update_white_label_member Destructive تغيير الدور أو النطاقات أو الصلاحيات أو الملاحظة
suspend_white_label_member Destructive إيقاف الوصول وإبطال المفاتيح النشطة
resume_white_label_member Destructive استئناف عضوية معلقة
resend_white_label_invitation Sending استبدال دعوة معلقة وإرسالها بالبريد الإلكتروني
remove_white_label_member Destructive + confirmation إزالة الوصول وإبطال المفاتيح النشطة
restore_white_label_member Destructive استعادة عضوية مزالة
list_white_label_activity Read قراءة نشاط الحساب
get_white_label_member_activity Read قراءة إجراءات عضو واحد وعمليات دخوله
list_client_limits Read عرض حدود تخزين العملاء واستخدامها
set_client_limit Destructive منح نطاقات حدّا أو تغييره أو استبدال مجموعة نطاقاته
remove_client_limit Destructive + confirmation إزالة حدّ؛ تعود نطاقاته إلى تخزين الحساب

تتطلب أدوات الدعوة TREKMAIL_ALLOW_SENDING=true على MCP المستضاف ذاتيا عبر stdio. وتتطلب أدوات تغيير الوصول وأدوات حدود تخزين العملاء TREKMAIL_ALLOW_DESTRUCTIVE=true؛ كما تتطلب إزالة عضو أو حدّ confirm_remove=true. والأداة set_mailbox_storage، وهي ليست من مجموعة White Label، لها الشرط نفسه. هذه المفاتيح عناصر تحكم محلية في الأمان وليست صلاحيات API إضافية. يطبق MCP المستضاف سياسة الأمان المعتمدة الخاصة به.

تنشئ الأدوات مفاتيح تكرار حتمية عندما لا تقدم مفتاحا. يفيد تقديم idempotency_key خاص بك عندما يمكن إعادة تشغيل سير العمل في عملية مختلفة.

سير عمل آمن للأتمتة

  1. استدع get_white_label. توقف عند scope_blocked_by_entitlement؛ وفي استجابة grace الناجحة، تابع عمليات القراءة فقط.
  2. استدع get_white_label_access_catalog مباشرة قبل منح الوصول.
  3. اعرض العضو المستهدف أو اقرأه قبل تغييره.
  4. تحقق من allowed_operations والدور المقصود والصلاحيات ومعرفات النطاقات.
  5. استخدم مفتاح تكرار ثابتا للكتابة.
  6. اقرأ العضو مرة أخرى وأبلغ عن الحالة الناتجة والصلاحيات الفعلية.
  7. تحقق من نشاط White Label عندما تحتاج إلى سجل تدقيق للتغيير.

أخطاء توضح ما يجب فعله

الرمز المعنى الخطوة التالية
insufficient_scope لم تُمنح بيانات الاعتماد النطاق المطلوب مطلقا أضف ذلك النطاق أو أعد تفويض اتصال OAuth
scope_blocked_by_entitlement التفويض المحفوظ موجود، لكن White Label غير نشط له الآن أعد تنشيط White Label، ثم أعد إصدار بيانات الاعتماد أو تفويضها
scope_blocked_by_membership دور الشخص الحالي أضيق من الإجراء أو المنحة المطلوبة اطلب من المالك تغيير العضوية، أو اطلب وصولا أقل
member_not_manageable الهدف هو المالك أو المستدعي نفسه أو عضو أوسع صلاحية اختر عضوا داخل حدود إدارة المستدعي
membership_state_conflict لا تناسب العملية حالة العضو الحالية اقرأ allowed_operations واختر أحد تلك الإجراءات
missing_idempotency_key أُرسلت عملية كتابة دون مفتاح أعد المحاولة باستخدام Idempotency-Key ثابت
idempotency_mismatch أعيد استخدام المفتاح نفسه لمدخلات مختلفة استخدم الإدخال الأصلي أو أنشئ مفتاحا جديدا
client_storage_limit_exceeded حجم ثابت لصندوق بريد لا يتسع فيما تبقى من حدّ العميل اختر details.available_mb على الأكثر، أو التخزين المشترك، أو ارفع الحدّ
client_storage_below_usage سيصبح صندوق البريد أصغر مما يخزنه بالفعل اختر details.used_mb على الأقل، أو التخزين المشترك
client_storage_limit_too_low سيصبح الحدّ أقل مما تحجزه نطاقاته أو تخزنه اختر details.minimum_mb على الأقل
client_storage_domains_conflict النطاقات تحت حدود مختلفة غيّر كل حدّ على نطاقاته، أو أخرج النطاق من حدّه أولا

مقالات ذات صلة

انتقل إلى الأدلة القريبة التي تُكمل سير العمل.

تسجيل الدخول إلى TrekMail

الوصول إلى لوحة التحكم وصناديق البريد وإعدادات DNS الخاصة بك.

12 أحرف

تم إرسال بريد إعادة التعيين

إذا كان هناك حساب مرتبط بهذا البريد الإلكتروني، فقد أرسلنا تعليمات إعادة تعيين كلمة المرور.

بالمتابعة، فإنك توافق على شروط TrekMail و سياسة الخصوصية.