پرش به مستندات
Python

Python SDK

کلاینت رسمی Python برای OpenEmail API. همگام و ناهمگام، سراسر تایپ‌شده، و برای هر اندپوینت یک متد.

چیست

یک پکیج روی کل API (ارسال، قالب‌ها، ردیابی، رشته‌ها، پیش‌نویس‌ها، برچسب‌ها، مخاطبان، گروه‌های مخاطب، فرم‌های ثبت‌نام، ارسال‌های گروهی، دامنه‌ها، قواعد، وب‌هوک‌ها، تقویم، تنظیمات، نقش‌ها، اعضا، توقیف‌ها، فایل‌ها و صندوق‌های یک‌بارمصرف) با یک TypedDict برای هر درخواست و پاسخ، دو کلاس خطا، تلاش‌های دوباره‌ای که نمی‌توانند یک ارسال را تکراری کنند، و یک وارسی‌کنندهٔ امضای وب‌هوک. روی Python 3.10 و تازه‌تر اجرا می‌شود و فقط به httpx، anyio و typing-extensions وابسته است. یک کلید API فضای کاری یا یک توکن دسترسی OAuth را با خود دارد، پس جایش روی سرور یا در ابزاری است که روی دستگاه خودتان اجرا می‌شود، و صندوق‌های یک‌بارمصرف تنها بخشی‌اند که به هیچ اعتبارنامه‌ای نیاز ندارند.

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

همگام و ناهمگام

OpenEmail همگام است، و AsyncOpenEmail همتای ناهمگام آن با همان گزینه‌ها و همان متدهاست که هر کدام با await فراخوانی می‌شود. روی asyncio و trio اجرا می‌شود، و یک iterate صفحه‌بندی‌شده به یک async for تبدیل می‌شود.

send_email_async.py
import asyncio from openemail import AsyncOpenEmail  async def main() -> None:    async with AsyncOpenEmail() as client:        email = await client.emails.send({            'from': 'Acme Billing <[email protected]>',            'to': '[email protected]',            'subject': 'Your September invoice',            'html': '<p>Invoice attached.</p>',        })         async for thread in client.threads.iterate(folder='inbox'):            print(thread['id'])         print(email['id'], email['status'])  asyncio.run(main())

کلاینت مشترک openemail همگام است، پس یک AsyncOpenEmail را خودتان، یک بار، بسازید و با aclose() یا یک بلوک async with ببندید.

از کجا ادامه دهید

همان API ای را می‌پوشاند که هر کلاینت دیگری می‌پوشاند

هر چیزی که اینجاست همان سطحی است که مرجع API مستندش می‌کند، پس برای اینکه یک اندپوینت چه می‌کند آن را بخوانید و برای اینکه چگونه صدایش بزنید این را. برای هر عملیات مستندشده یک متد هست، و بررسی همخوانی این پکیج سند OpenAPI را می‌خواند تا همین را ثابت کند.

هر متد TypeScript یک همتای Python با همان نام به شکل snake_case دارد، و بررسی همخوانی هر جفت را با آرگومان‌های یکسان اجرا می‌کند و شکست می‌خورد مگر آنکه هر دو همان درخواست را بفرستند، به همان شیوه دوباره تلاش کنند و همان مقدار را برگردانند.