أداة Python ذات الاعتمادية الصفرية التي تتيح لك إرسال رسائل البريد الإلكتروني من سطر الأوامر باستخدام Gmail SMTP. التثبيت باستخدام أمر واحد، والتكوين مرة واحدة، وإرسال رسائل البريد الإلكتروني من البرامج النصية، أو سير عمل الأتمتة، أو وكلاء الذكاء الاصطناعي.
المشكلة
لقد كان إرسال رسائل البريد الإلكتروني من سطر الأوامر أمرًا مؤلمًا تقليديًا:
- الإعداد المعقد: يتطلب تكوين sendmail أو postfix أو msmtp إجراء تغييرات على مستوى النظام
- قضايا التسليم: غالبًا ما تصل خوادم البريد ذاتية الاستضافة إلى مجلدات البريد العشوائي
- تجزئة المنصة: أدوات مختلفة لأنظمة التشغيل المختلفة
- جحيم التبعية: تتطلب العديد من الحلول تثبيت مكتبات إضافية
كنت بحاجة إلى طريقة بسيطة لإرسال رسائل البريد الإلكتروني من البرامج النصية للأتمتة، ووكلاء الذكاء الاصطناعي، وخطوط أنابيب CI/CD دون صعوبة تكوين خادم البريد. تتمتع خوادم SMTP في Gmail بإمكانية تسليم ممتازة، وتوفر كلمات مرور التطبيقات مصادقة آمنة دون الكشف عن كلمة مرور حسابك الرئيسي.
الحل
gmail-cli هو ملف Python واحد بدون أي تبعيات خارجية ويعمل على أي نظام يستخدم Python 3. ويستخدم خوادم SMTP الخاصة بـ Gmail للتسليم الموثوق به ويخزن بيانات الاعتماد بشكل آمن في الدليل الرئيسي الخاص بك.
التثبيت على خط واحد
ماك / لينكس
curl -sSL https://colinknapp.com/tools/gmail-cli/install.sh | bash
ويندوز باورشيل
iwr -useb https://colinknapp.com/tools/gmail-cli/install.ps1 | iex
يقوم المثبت بتنزيل البرنامج النصي إلى ~/.local/bin (يونكس) أو %LOCALAPPDATA%\gmail-cli (Windows) ويضيفه إلى المسار الخاص بك.
الإعداد: كلمة مرور تطبيق Gmail
يتطلب Gmail كلمة مرور التطبيق للوصول إلى SMTP (لن تعمل كلمة المرور العادية مع تمكين المصادقة الثنائية). وإليك كيفية إعداد واحدة:
- اذهب الى myaccount.google.com/apppasswords
- قم بتمكين التحقق بخطوتين إذا لم تقم بذلك بالفعل
- إنشاء كلمة مرور التطبيق لـ "البريد"
- تشغيل
gmail-cli configureوأدخل عنوان Gmail وكلمة مرور التطبيق
gmail-cli configure
Gmail CLI Configuration
----------------------------------------
You'll need a Gmail App Password:
1. Go to https://myaccount.google.com/apppasswords
2. Enable 2-Step Verification if needed
3. Generate an App Password for 'Mail'
Gmail address: yourname@gmail.com
App Password (will be stored locally): xxxx xxxx xxxx xxxx
Configuration saved to /home/user/.config/gmail-cli/config.json
أمثلة الاستخدام
البريد الإلكتروني البسيط
gmail-cli send recipient@example.com -s "Hello" -b "Hi there!"
البريد الإلكتروني مع المرفقات
gmail-cli send recipient@example.com \
-s "Weekly Report" \
-b "Please find the report attached." \
-a report.pdf \
-a data.csv
محتوى الأنابيب من stdin
cat logfile.txt | gmail-cli send admin@example.com -s "Server Logs"
اتصال الاختبار
gmail-cli test
Testing connection for yourname@gmail.com...
Success! Connection and authentication working.
حالة الاستخدام في العالم الحقيقي: البريد الإلكتروني لوكيل الذكاء الاصطناعي
لقد قمت بتصميم هذه الأداة خصيصًا للاستخدام مع عوامل ترميز الذكاء الاصطناعي مثل Cursor. عندما أحتاج إلى إرسال بريد إلكتروني يحتوي على مرفقات بتنسيق PDF، يمكن لعامل الذكاء الاصطناعي إنشاء الرسالة وإرسالها مباشرةً:
gmail-cli send recipient@example.com \
-s "Documents Attached" \
-b "Hi,
Please find the requested documents attached.
Best regards,
Your Name" \
-a document1.pdf \
-a document2.pdf
يتيح ذلك التشغيل الآلي الشامل: يمكن للذكاء الاصطناعي إنشاء المستندات وإنشاء ملفات PDF وإرسالها عبر البريد الإلكتروني دون تدخل بشري.
التنفيذ الفني
الهندسة المعمارية
- ملف واحد: لا توجد تبعيات تتجاوز مكتبة Python 3 القياسية
- SMTP عبر TLS: اتصال آمن بـ smtp.gmail.com:587
- التكوين المحلي: بيانات الاعتماد المخزنة في
~/.config/gmail-cli/config.jsonمع 600 إذن - دعم MIME: رسائل متعددة الأجزاء مناسبة للمرفقات
الاعتبارات الأمنية
- يستخدم كلمات مرور تطبيقات Gmail (وليس كلمة المرور الرئيسية)
- يحتوي ملف التكوين على أذونات مقيدة (Unix: 600)
- تشفير TLS لجميع اتصالات SMTP
- يمكن إلغاء كلمات مرور التطبيقات بشكل فردي دون التأثير على حسابك الرئيسي
الدعم عبر الأنظمة الأساسية
تتعامل الأداة مع اختلافات النظام الأساسي تلقائيًا:
- ماك/لينكس: التكوين في
~/.config/gmail-cli/، مثبت على~/.local/bin/ - ويندوز: التكوين في
%APPDATA%\gmail-cli\، مثبت على%LOCALAPPDATA%\gmail-cli\مع المجمع .bat
مرجع القيادة
| القيادة | الوصف |
|---|---|
gmail-cli configure |
إعداد بيانات اعتماد Gmail (تفاعلية) |
gmail-cli configure --email x --password y |
قم بتعيين بيانات الاعتماد بشكل غير تفاعلي |
gmail-cli send TO -s SUBJ -b BODY |
إرسال بريد إلكتروني |
gmail-cli send TO -s SUBJ -a FILE |
إرسال مع المرفقات |
gmail-cli test |
اختبار اتصال SMTP |
gmail-cli config |
إظهار التكوين الحالي |
التكامل مع الأتمتة
يعمل Gmail-cli بسلاسة مع:
- البرامج النصية شل: إرسال إشعارات من وظائف cron أو إنشاء البرامج النصية
- خطوط أنابيب CI/CD: إرسال تقارير النشر أو نتائج الاختبار عبر البريد الإلكتروني
- وكلاء الذكاء الاصطناعي: قم بتمكين المساعدين الذين يدعمهم LLM من إرسال رسائل البريد الإلكتروني نيابةً عنك
- المراقبة: تنبيه بشأن أحداث النظام أو انتهاكات العتبة
مثال: تقرير النسخ الاحتياطي اليومي
#!/bin/bash
# backup-report.sh - Run daily via cron
BACKUP_LOG="/var/log/backup.log"
RECIPIENT="admin@example.com"
if [ -f "$BACKUP_LOG" ]; then
cat "$BACKUP_LOG" | gmail-cli send "$RECIPIENT" \
-s "Daily Backup Report - $(date +%Y-%m-%d)"
fi
لماذا لا تستخدم الأدوات الموجودة؟
| بديل | قضية |
|---|---|
| إرسال البريد/postfix | يتطلب الجذر، والتكوين المعقد، ومشاكل التسليم |
| com.msmtp | التبعية الخارجية، بناء جملة ملف التكوين |
| ميلكس/البريد | خاص بالنظام الأساسي، ويتطلب MTA محليًا |
| بايثون smtplib مباشرة | كود معياري، لا توجد واجهة CLI |
يوفر gmail-cli بساطة أداة واجهة سطر الأوامر (CLI) مع موثوقية البنية الأساسية لـ Gmail، وهي مغلفة بحزمة خالية من التبعية تعمل في كل مكان تعمل فيه Python.
الملاحظات
- تعمل عمليات التثبيت ذات الخطوط الواحدة: ال
curl | bashعلى الرغم من أن هذا النمط مثير للجدل، إلا أنه يقلل بشكل كبير من الاحتكاك بأدوات المطورين - Gmail SMTP موثوق به: تتمتع خوادم Google بإمكانية تسليم ووقت تشغيل ممتازين
- يتم التقليل من أهمية كلمات مرور التطبيقات: أنها توفر وصولاً محددًا دون الكشف عن بيانات الاعتماد الرئيسية الخاصة بك
- المسائل المتعلقة بالمنصات المشتركة: تعمل الأداة بشكل مماثل على أنظمة التشغيل macOS وLinux وWindows، مما يوفر الوثائق وجهود الدعم
- يحتاج وكلاء الذكاء الاصطناعي إلى البريد الإلكتروني: مع نمو الأتمتة التي تعتمد على LLM، يصبح البريد الإلكتروني البسيط ذو قيمة متزايدة
Get Started
قم بتثبيت gmail-cli وابدأ في إرسال رسائل البريد الإلكتروني من جهازك الطرفي:
# Install (macOS/Linux)
curl -sSL https://colinknapp.com/tools/gmail-cli/install.sh | bash
# Configure
gmail-cli configure
# Send your first email
gmail-cli send yourself@gmail.com -s "Test" -b "It works!"