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

التثبيت

حزمة Composer واحدة، لـ PHP 8.2 فما فوق، مع امتدادَي curl وjson.

التثبيت

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

composer require openemail/sdk
send_email.php
<?php use OpenEmail\OpenEmail; require __DIR__ . '/vendor/autoload.php'; $client = new OpenEmail(); $email = $client->emails->send([    'from' => 'Acme Billing <[email protected]>',    'to' => '[email protected]',    'subject' => 'Your September invoice',    'html' => '<p>Invoice attached.</p>',]); echo $email['id'], ' ', $email['status'], PHP_EOL;

يقرأ new OpenEmail() المفتاح من OPENEMAIL_API_KEY، فلا تحمل الشيفرة أي بيانات اعتماد. مرّر apiKey: حين يكون إعدادك في مكان آخر. وللوصول إلى عميل واحد من أي مكان، اضبطه مرة واحدة بـ OpenEmail::init() واجلبه بـ OpenEmail::getClient().

الاستجابة هي JSON بعد فك ترميزه في صورة مصفوفة ترابطية، فيقرأ $email['id'] المعرّف. وتحتفظ المفاتيح بأسماء API، وكذلك التوابع ووسائطها المسمّاة، ولهذا يُكتب scheduledAt وidempotencyKey: هنا كما يُكتبان في مرجع API.

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

أين يعمل

PHP 8.2 فما فوق، مع امتدادَي curl وjson اللذين تأتي بهما كل نسخة من PHP تقريبًا، وبلا أي تبعية أخرى. تمرّ الطلبات عبر مقبض cURL واحد لكل عميل، فيعيد الطلب الثاني إلى API استخدام الاتصال الذي فتحه الطلب الأول، ويفك cURL ضغط الاستجابة المضغوطة نيابةً عنك.

يعمل تحت PHP-FPM وApache وسطر الأوامر والعمّال طويلي التشغيل مثل عامل الطوابير أو RoadRunner أو FrankenPHP. وتحت PHP-FPM يبدأ كل طلب من جديد، فأنشئ العميل مرة واحدة لكل طلب. وفي العملية طويلة التشغيل، احتفظ بعميل واحد طوال عمر العملية. وبعد pcntl_fork تفتح العملية الابنة اتصالها الخاص بدل إعادة استخدام اتصال العملية الأم.

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