تخطَّ إلى المحتوى
kazma.
EN نجمة 7 ابدأ الآن

تكامل البريد

مهارة email-manager الأصلية تمنح الوكيل أدوات صندوق بريد كاملة: سرد، جلب، إرسال، حذف، تصنيف، وتحليل. لا يوجد أمر slash إلزامي /email — استخدم الدردشة.

بداية سريعة (sandbox — بلا إعداد)

Section titled “بداية سريعة (sandbox — بلا إعداد)”

أعد تشغيل الخادم واسأل:

  • اعرض الوارد
  • حلّل رسالة اليانصيب / التصيّد
  • صغ ردًا إلى boss@corp.com (موافقة HITL للإرسال/المسودات)

بدون بيانات اعتماد، كل رد يُسبق بـ [sandbox mode]. البيانات في kazma-data/sandbox_emails.db.

الأداةالغرضHITL
email_listسرد/بحث المجلدلا
email_getنص الرسالة كاملًالا
email_sendإرسال / رد / تحويل / مسودةنعم
email_deleteسلة أو حذف دائمنعم
email_categorizeقراءة/نجمة/تسميات/نقلنعم
email_analyzeملخص، إجراءات، تصيّدلا

وسائط شائعة: provider (auto|sandbox|gmail|microsoft|imap|pop)، وaccount اختياري (اسم مستعار متعدد الحسابات).

  1. provider / account صريح على استدعاء الأداة
  2. EMAIL_DEFAULT_PROVIDER
  3. أول حساب حقيقي مُعدّ (Gmail → Microsoft → IMAP/POP عام → أسماء متعددة)
  4. Sandbox

ربط البريد (واجهة الإعدادات)

Section titled “ربط البريد (واجهة الإعدادات)”

افتح الإعدادات → البريد (/settings?tab=email).

لكل من Gmail وMicrosoft مبدّل وضع: OAuth | IMAP | POP.

البطاقةالأوضاع
Sandboxدائمًا — بلا إعداد
Gmail / WorkspaceOAuth (مُوصى، Gmail API) · IMAP · POP
Microsoft 365OAuth (مُوصى، Graph) · IMAP · POP

الحالة تعرض المزوّد النشط (تلقائي) وشارة المصادقة (OAUTH / IMAP / POP).

البروتوكولالمضيفات (جاهزة)ملاحظات
Gmail IMAPimap.gmail.com:993، smtp.gmail.com:587كلمة مرور تطبيق؛ فعّل IMAP
Gmail POPpop.gmail.com:995، smtp.gmail.com:587وارد فقط؛ بلا مسودات/تسميات
MS IMAPoutlook.office365.com:993، smtp.office365.com:587المصادقة الأساسية غالبًا معطّلة → OAuth
MS POPoutlook.office365.com:995، smtp.office365.com:587نفس قيد المصادقة

API:

POST /api/email/protocol/connect
{"provider":"gmail"|"microsoft"|"generic","protocol":"imap"|"pop","address":"...","password":"..."}
POST /api/email/protocol/disconnect
{"provider":"gmail"|"microsoft"|"generic"}
GET /api/email/presets

إعداد Gmail OAuth (مناسب لـ Workspace)

Section titled “إعداد Gmail OAuth (مناسب لـ Workspace)”
  1. Google Cloud Console → APIs & Services → فعّل Gmail API.
  2. شاشة موافقة OAuth → أضف النطاقات gmail.modify، gmail.send، userinfo.email.
  3. بيانات الاعتماد → OAuth client ID → نوع Web application.
  4. URI إعادة التوجيه المصرّح:
http://127.0.0.1:9090/api/email/oauth/gmail/callback
https://your.domain/api/email/oauth/gmail/callback
  1. الإعدادات → البريد → الصق Client ID + السر → حفظ عميل OAuthالاتصال بـ Google.

بديل Env:

Terminal window
EMAIL_GMAIL_CLIENT_ID=...
EMAIL_GMAIL_CLIENT_SECRET=...
# بعد OAuth تُخزَّن الرموز تلقائيًا:
# EMAIL_GMAIL_ACCESS_TOKEN / EMAIL_GMAIL_REFRESH_TOKEN (وأيضًا vault)

كلمات مرور التطبيقات ما زالت تعمل لـ Gmail الشخصي إن سمح المشرف؛ OAuth مُفضَّل لـ Workspace.

خطأ: «Kazma has not completed the Google verification process» / 403: access_denied

Section titled “خطأ: «Kazma has not completed the Google verification process» / 403: access_denied”

تطبيق OAuth في وضع Testing. Google يسمح فقط بمستخدمي الاختبار حتى يُتحقَّق من التطبيق.

الإصلاح للاستخدام الشخصي / مستخدم واحد:

  1. Google Cloud → OAuth consent screen.
  2. حالة النشر Testing.
  3. Test users → أضف Gmail الذي تسجّل به.
  4. احفظ، انتظر ~دقيقة، أعد الاتصال بـ Google.
  5. قد ترى «Google hasn’t verified this app» → Continue — متوقَّع للمشاريع الشخصية.

لا تحتاج تحقق Google كاملًا إلا إن نشرت كاظمة كمنتج متعدد المستأجرين لمستخدمين عشوائيين.

خطأ: insufficientPermissions / نطاقات غير كافية

Section titled “خطأ: insufficientPermissions / نطاقات غير كافية”

نجح OAuth لكن الرمز بلا نطاقات Gmail. Gmail API يعيد 403.

الإصلاح (مطلوب — أعد الاتصال):

  1. فعّل Gmail API.
  2. أضف النطاقات:
    • https://www.googleapis.com/auth/gmail.modify
    • https://www.googleapis.com/auth/gmail.send
  3. افصل Gmail في كاظمة ثم اتصل بـ Google مجددًا.
  4. على شاشة Google يجب أن ترى صلاحيات Gmail وليس «عرض عنوان بريدك» فقط.
  5. جرّب: اعرض الوارد.
  1. تسجيل تطبيق Azure → Web redirect URI:
http://127.0.0.1:9090/api/email/oauth/microsoft/callback
  1. صلاحيات مفوّضة: Mail.Read، Mail.ReadWrite، Mail.Send، offline_access.
  2. الإعدادات → البريد → Client ID (+ سر إن لزم) → الاتصال بـ Microsoft.

كود الجهاز يبقى تحت «بديل: device code».

Terminal window
EMAIL_MS_CLIENT_ID=...
EMAIL_MS_CLIENT_SECRET=...
EMAIL_MS_TENANT_ID=common
EMAIL_MS_REDIRECT_URI=http://127.0.0.1:9090/api/email/oauth/microsoft/callback

عيّن KAZMA_PUBLIC_URL=https://your.domain خلف reverse proxy.

أسماء مستعارة متعددة الحسابات

Section titled “أسماء مستعارة متعددة الحسابات”
Terminal window
EMAIL_ACCOUNTS=personal,work
EMAIL_ACCOUNT_PERSONAL_TYPE=gmail
EMAIL_ACCOUNT_PERSONAL_ADDRESS=me@gmail.com
EMAIL_ACCOUNT_PERSONAL_PASSWORD=app-password
EMAIL_ACCOUNT_WORK_TYPE=microsoft
EMAIL_ACCOUNT_WORK_REFRESH_TOKEN=...
EMAIL_ACCOUNT_WORK_CLIENT_ID=...

في الدردشة: اعرض وارد workaccount=work.

GET /api/email/status
GET /api/email/accounts

email_analyze يستخدم LLM النشط إن وُجد؛ وإلا كاشف تصيّد/إجراءات استكشافي. راجع دائمًا security.risk_level على رسائل البنوك/اليانصيب.

  • أدوات التعديل تتطلب موافقة HITL.
  • لا تلصق كلمات مرور التطبيقات في الدردشة؛ استخدم env أو vault.
  • Sandbox لا يرسل بريدًا حقيقيًا أبدًا.
  • Graph OAuth هو مسار M365 المُوصى؛ IMAP/POP يعملان فقط إن سمح المستأجر.
  • POP موجَّه للوارد؛ فضّل IMAP أو OAuth.