التثبيت
حزمة واحدة، بلا اعتماديات، وعلى كل بيئة تشغيل خادم.
التثبيت
الإصدار الأول هو 0.0.1. لكل عملية موثَّقة تابع، وفحص التكافؤ في الحزمة يُفشل البناء حين يغيب أحدها، وAPI الذي تغلّفه مفعّل في كل بيئة.
pnpm add @openemail/sdkimport { init, openemail } from '@openemail/sdk' init({ apiKey: process.env.OPENEMAIL_API_KEY }) const email = await openemail.emails.send({ from: 'Acme Billing <[email protected]>', to: '[email protected]', subject: 'Your September invoice', html: '<p>Invoice attached.</p>',}) console.log(email.id, email.status)يهيّئ init العميل المشترك openemail مرة واحدة، وكل وحدة تستورد openemail بعد ذلك تحصل على هذا العميل. وإن تخطّيته، بنى أول نداء العميلَ من OPENEMAIL_API_KEY بدلًا من ذلك.
تحقُّق وعد send() لا يعني أن الرسالة قد ذهبت. فالإرسال المجدوَل أو القابل للإلغاء يعود بالحالة queued أو scheduled ويستقر لاحقًا. اقرأ status، لا مجرد كون الوعد قد تحقّق.
أين يعمل
صفر اعتماديات وقت التشغيل، على Node 20+ وBun وDeno وCloudflare Workers. تستخدم الحزمة fetch العام ولا شيء سواه، ويمكنك تمرير نسختك الخاصة منه.
تُشحن صيغتا ESM وCommonJS معًا، ولكل منهما تصريحات أنواعها، فيعمل import { openemail } from '@openemail/sdk' وconst { openemail } = require('@openemail/sdk') كلاهما.
لا في المتصفح. فالعميل يحمل مفتاح API لمساحة عمل يمكنه إرسال البريد وقراءة صندوق البريد، ولذلك يرفض الإقلاع حيث يوجد window وdocument. وصناديق الوارد المؤقتة هي الاستثناء: createTempMail() لا يحتاج مفتاحًا ويعمل داخل صفحة.
هذا عميل **TypeScript/JavaScript**، ولا توجد حزمة لـPython أو Go أو PHP أو Ruby. ومن أي لغة أخرى يكون API مجرد HTTP وJSON: يحمل دليل البدء السريع طلبًا عاملًا بثماني لغات، ويولّد مستند OpenAPI عميلًا في معظم اللغات الباقية.