تخطَّ إلى المستندات
Python

التثبيت

حزمة واحدة، وثلاث اعتماديات، وPython 3.10 فما فوق.

التثبيت

الإصدار الحالي هو 0.0.1. وفيه دالة مقابل كل دالة في TypeScript SDK، بالاسم نفسه بصيغة snake_case، وفحص التكافؤ في الحزمة يُفشل البناء حين تغيب إحداها أو ترسل طلبًا مختلفًا.

pip install openemail
send_email.py
import os from openemail import init, openemail init(os.environ['OPENEMAIL_API_KEY']) email = openemail.emails.send({    'from': 'Acme Billing <[email protected]>',    'to': '[email protected]',    'subject': 'Your September invoice',    'html': '<p>Invoice attached.</p>',}) print(email['id'], email['status'])

يهيّئ init العميل المشترك openemail مرة واحدة، وكل وحدة تستورد openemail بعد ذلك تحصل على هذا العميل. وإن تخطّيته، بنى أول نداء العميلَ من OPENEMAIL_API_KEY بدلًا من ذلك.

جسم الطلب dict عادي بأسماء الحقول الخاصة بـ API نفسها، فتظهر from وreplyTo وscheduledAt تمامًا كما تظهر في مرجع API، والاستجابة dict أيضًا. ولكل جسم طلب واستجابة TypedDict في openemail.types، فيُكمل محررك المفاتيح ويلتقط مدقق الأنواع أي مفتاح مكتوب خطأً.

عودة send() لا تعني أن الرسالة قد ذهبت. فالإرسال المجدوَل أو القابل للإلغاء يعود بالحالة queued أو scheduled ويستقر لاحقًا. اقرأ status، لا مجرد كون الاستدعاء قد عاد.

أين يعمل

Python 3.10 فما أحدث، مع ثلاث اعتماديات: httpx لـ HTTP، وanyio للعميل غير المتزامن، وtyping-extensions للأنواع. يمرّ كل طلب عبر httpx، ويمكنك أن تمرّر إليه httpx.Client الخاص بك، أو httpx.AsyncClient من أجل AsyncOpenEmail.

يناسب OpenEmail السكربتات والعمّال الخلفيين وتطبيقات الويب المتزامنة، ويناسب AsyncOpenEmail حلقة الأحداث، على asyncio أو trio. وكلاهما يأتي في هذه الحزمة الواحدة بالدوال نفسها.

يمكن مشاركة عميل واحد بين خيوط التنفيذ بأمان، فلا تحتاج العملية العاملة إلا إلى عميل واحد. ويحتفظ بمجمّع اتصالات واحد، يغلقه close() أو نهاية كتلة with.

تأتي الحزمة مع py.typed وتجتاز mypy وpyright في الوضع الصارم، فيقرأ مدقق الأنواع كل دالة وجسم واستجابة كما كُتبت.

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