--- title: تكامل Gmail description: "إدارة البريد الإلكتروني وجهات الاتصال مع تكامل Gmail لـ CrewAI." icon: "envelope" mode: "wide" --- ## نظرة عامة مكّن وكلاءك من إدارة رسائل البريد الإلكتروني وجهات الاتصال والمسودات عبر Gmail. أرسل رسائل البريد الإلكتروني، وابحث في الرسائل، وأدر جهات الاتصال، وأنشئ المسودات، وبسّط اتصالات البريد الإلكتروني باستخدام الأتمتة المدعومة بالذكاء الاصطناعي. ## المتطلبات الأساسية قبل استخدام تكامل Gmail، تأكد من توفر ما يلي: - حساب [CrewAI AMP](https://app.crewai.com) مع اشتراك فعّال - حساب Gmail بالصلاحيات المناسبة - ربط حساب Gmail الخاص بك عبر [صفحة التكاملات](https://app.crewai.com/crewai_plus/connectors) ## إعداد تكامل Gmail ### 1. ربط حساب Gmail الخاص بك 1. انتقل إلى [تكاملات CrewAI AMP](https://app.crewai.com/crewai_plus/connectors) 2. ابحث عن **Gmail** في قسم تكاملات المصادقة 3. انقر على **Connect** وأكمل عملية OAuth 4. امنح الصلاحيات اللازمة لإدارة البريد الإلكتروني وجهات الاتصال 5. انسخ رمز المؤسسة من [إعدادات التكامل](https://app.crewai.com/crewai_plus/settings/integrations) ### 2. تثبيت الحزمة المطلوبة ```bash uv add crewai-tools ``` ### 3. إعداد متغير البيئة لاستخدام التكاملات مع `Agent(apps=[])`, يجب تعيين متغير البيئة `CREWAI_PLATFORM_INTEGRATION_TOKEN` برمز المؤسسة الخاص بك. ```bash export CREWAI_PLATFORM_INTEGRATION_TOKEN="your_enterprise_token" ``` أو أضفه إلى ملف `.env`: ``` CREWAI_PLATFORM_INTEGRATION_TOKEN=your_enterprise_token ``` ## الإجراءات المتاحة **الوصف:** استرجاع قائمة بالرسائل. **المعاملات:** - `userId` (string, مطلوب): عنوان البريد الإلكتروني للمستخدم أو 'me' للمستخدم المصادق عليه. (الافتراضي: "me") - `q` (string, اختياري): استعلام بحث لتصفية الرسائل (مثال: 'from:someone@example.com is:unread'). - `maxResults` (integer, اختياري): الحد الأقصى لعدد الرسائل المُرجعة (1-500). (الافتراضي: 100) - `pageToken` (string, اختياري): رمز الصفحة لاسترجاع صفحة محددة من النتائج. - `labelIds` (array, اختياري): إرجاع الرسائل ذات التصنيفات التي تطابق جميع معرّفات التصنيف المحددة فقط. - `includeSpamTrash` (boolean, اختياري): تضمين رسائل البريد العشوائي والمحذوفات في النتائج. (الافتراضي: false) **الوصف:** إرسال بريد إلكتروني. **المعاملات:** - `to` (string, مطلوب): عنوان البريد الإلكتروني للمستلم. - `subject` (string, مطلوب): سطر موضوع البريد الإلكتروني. - `body` (string, مطلوب): محتوى رسالة البريد الإلكتروني. - `userId` (string, اختياري): عنوان البريد الإلكتروني للمستخدم أو 'me' للمستخدم المصادق عليه. (الافتراضي: "me") - `cc` (string, اختياري): عناوين نسخة كربونية (مفصولة بفواصل). - `bcc` (string, اختياري): عناوين نسخة كربونية مخفية (مفصولة بفواصل). - `from` (string, اختياري): عنوان المرسل (إذا كان مختلفاً عن المستخدم المصادق عليه). - `replyTo` (string, اختياري): عنوان الرد. - `threadId` (string, اختياري): معرّف السلسلة إذا كان الرد على محادثة موجودة. **الوصف:** حذف بريد إلكتروني بواسطة المعرّف. **المعاملات:** - `userId` (string, مطلوب): عنوان البريد الإلكتروني للمستخدم أو 'me' للمستخدم المصادق عليه. - `id` (string, مطلوب): معرّف الرسالة المراد حذفها. **الوصف:** إنشاء مسودة بريد إلكتروني جديدة. **المعاملات:** - `userId` (string, مطلوب): عنوان البريد الإلكتروني للمستخدم أو 'me' للمستخدم المصادق عليه. - `message` (object, مطلوب): كائن الرسالة الذي يحتوي على محتوى المسودة. - `raw` (string, مطلوب): رسالة البريد الإلكتروني بترميز base64url. **الوصف:** استرجاع رسالة محددة بواسطة المعرّف. **المعاملات:** - `userId` (string, مطلوب): عنوان البريد الإلكتروني للمستخدم أو 'me' للمستخدم المصادق عليه. (الافتراضي: "me") - `id` (string, مطلوب): معرّف الرسالة المراد استرجاعها. - `format` (string, اختياري): صيغة إرجاع الرسالة. الخيارات: "full", "metadata", "minimal", "raw". (الافتراضي: "full") - `metadataHeaders` (array, اختياري): عند التحديد وكانت الصيغة METADATA، يتم تضمين الترويسات المحددة فقط. **الوصف:** استرجاع مرفق رسالة. **المعاملات:** - `userId` (string, مطلوب): عنوان البريد الإلكتروني للمستخدم أو 'me' للمستخدم المصادق عليه. (الافتراضي: "me") - `messageId` (string, مطلوب): معرّف الرسالة التي تحتوي على المرفق. - `id` (string, مطلوب): معرّف المرفق المراد استرجاعه. **الوصف:** استرجاع سلسلة بريد إلكتروني محددة بواسطة المعرّف. **المعاملات:** - `userId` (string, مطلوب): عنوان البريد الإلكتروني للمستخدم أو 'me' للمستخدم المصادق عليه. (الافتراضي: "me") - `id` (string, مطلوب): معرّف السلسلة المراد استرجاعها. - `format` (string, اختياري): صيغة إرجاع الرسائل. الخيارات: "full", "metadata", "minimal". (الافتراضي: "full") - `metadataHeaders` (array, اختياري): عند التحديد وكانت الصيغة METADATA، يتم تضمين الترويسات المحددة فقط. **الوصف:** تعديل التصنيفات المُطبقة على سلسلة. **المعاملات:** - `userId` (string, مطلوب): عنوان البريد الإلكتروني للمستخدم أو 'me' للمستخدم المصادق عليه. (الافتراضي: "me") - `id` (string, مطلوب): معرّف السلسلة المراد تعديلها. - `addLabelIds` (array, اختياري): قائمة بمعرّفات التصنيفات المراد إضافتها لهذه السلسلة. - `removeLabelIds` (array, اختياري): قائمة بمعرّفات التصنيفات المراد إزالتها من هذه السلسلة. **الوصف:** نقل سلسلة إلى سلة المحذوفات. **المعاملات:** - `userId` (string, مطلوب): عنوان البريد الإلكتروني للمستخدم أو 'me' للمستخدم المصادق عليه. (الافتراضي: "me") - `id` (string, مطلوب): معرّف السلسلة المراد حذفها. **الوصف:** إزالة سلسلة من سلة المحذوفات. **المعاملات:** - `userId` (string, مطلوب): عنوان البريد الإلكتروني للمستخدم أو 'me' للمستخدم المصادق عليه. (الافتراضي: "me") - `id` (string, مطلوب): معرّف السلسلة المراد استعادتها. ## أمثلة الاستخدام ### إعداد Agent أساسي لـ Gmail ```python from crewai import Agent, Task, Crew # Create an agent with Gmail capabilities gmail_agent = Agent( role="Email Manager", goal="Manage email communications and messages efficiently", backstory="An AI assistant specialized in email management and communication.", apps=['gmail'] # All Gmail actions will be available ) # Task to send a follow-up email send_email_task = Task( description="Send a follow-up email to john@example.com about the project update meeting", agent=gmail_agent, expected_output="Email sent successfully with confirmation" ) # Run the task crew = Crew( agents=[gmail_agent], tasks=[send_email_task] ) crew.kickoff() ``` ### تصفية أدوات Gmail محددة ```python from crewai import Agent, Task, Crew # Create agent with specific Gmail actions only email_coordinator = Agent( role="Email Coordinator", goal="Coordinate email communications and manage drafts", backstory="An AI assistant that focuses on email coordination and draft management.", apps=[ 'gmail/send_email', 'gmail/fetch_emails', 'gmail/create_draft' ] ) # Task to prepare and send emails email_coordination = Task( description="Search for emails from the marketing team, create a summary draft, and send it to stakeholders", agent=email_coordinator, expected_output="Summary email sent to stakeholders" ) crew = Crew( agents=[email_coordinator], tasks=[email_coordination] ) crew.kickoff() ``` ### البحث في البريد الإلكتروني وتحليله ```python from crewai import Agent, Task, Crew # Create agent with Gmail search and analysis capabilities email_analyst = Agent( role="Email Analyst", goal="Analyze email patterns and provide insights", backstory="An AI assistant that analyzes email data to provide actionable insights.", apps=['gmail/fetch_emails', 'gmail/get_message'] # Specific actions for email analysis ) # Task to analyze email patterns analysis_task = Task( description=""" Search for all unread emails from the last 7 days, categorize them by sender domain, and create a summary report of communication patterns """, agent=email_analyst, expected_output="Email analysis report with communication patterns and recommendations" ) crew = Crew( agents=[email_analyst], tasks=[analysis_task] ) crew.kickoff() ``` ### إدارة السلاسل ```python from crewai import Agent, Task, Crew # Create agent with Gmail thread management capabilities thread_manager = Agent( role="Thread Manager", goal="Organize and manage email threads efficiently", backstory="An AI assistant that specializes in email thread organization and management.", apps=[ 'gmail/fetch_thread', 'gmail/modify_thread', 'gmail/trash_thread' ] ) # Task to organize email threads thread_task = Task( description=""" 1. Fetch all threads from the last month 2. Apply appropriate labels to organize threads by project 3. Archive or trash threads that are no longer relevant """, agent=thread_manager, expected_output="Email threads organized with appropriate labels and cleanup completed" ) crew = Crew( agents=[thread_manager], tasks=[thread_task] ) crew.kickoff() ``` ### الحصول على المساعدة تواصل مع فريق الدعم للحصول على المساعدة في إعداد تكامل Gmail أو استكشاف الأخطاء وإصلاحها.