Zur Dokumentation springen
Python

Python-SDK

Der offizielle Python-Client für die OpenEmail-API. Synchron und asynchron, durchgehend typisiert und eine Methode für jeden Endpunkt.

Was es ist

Ein Paket über die ganze API (Senden, Vorlagen, Tracking, Threads, Entwürfe, Labels, Kontakte, Audiences, Anmeldeformulare, Broadcasts, Domains, Regeln, Webhooks, Kalender, Einstellungen, Rollen, Mitglieder, Sperrlisten, Dateien und Wegwerf-Postfächer) mit einem TypedDict für jede Anfrage und Antwort, zwei Fehlerklassen, Wiederholungen, die einen Versand nicht verdoppeln können, und einer Prüfung von Webhook-Signaturen. Es läuft auf Python 3.10 und neuer und hängt nur von httpx, anyio und typing-extensions ab. Es trägt einen Workspace-API-Schlüssel oder ein OAuth-Zugriffstoken und gehört daher auf einen Server oder in ein Werkzeug, das auf Ihrem eigenen Rechner läuft; Wegwerf-Postfächer sind der einzige Teil, der keine Anmeldedaten braucht.

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>',})

Synchron und asynchron

OpenEmail ist synchron, und AsyncOpenEmail ist sein asynchrones Gegenstück mit denselben Optionen und denselben Methoden, die jeweils mit await aufgerufen werden. Es läuft auf asyncio und trio, und aus einem paginierten iterate wird ein 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())

Der gemeinsame openemail-Client ist synchron. Erzeugen Sie einen AsyncOpenEmail also selbst, einmal, und schließen Sie ihn mit aclose() oder einem async with-Block.

Wohin als Nächstes

Es kapselt dieselbe API wie jeder andere Client

Alles hier ist dieselbe Oberfläche, die die API-Referenz dokumentiert; lesen Sie dort, was ein Endpunkt tut, und hier, wie man ihn aufruft. Es gibt eine Methode für jede dokumentierte Operation, und die Parity-Prüfung des Pakets liest das OpenAPI-Dokument, um das nachzuweisen.

Jede TypeScript-Methode hat ein Python-Gegenstück unter demselben Namen in snake_case, und die Paritätsprüfung führt jedes Paar mit denselben Argumenten aus und schlägt fehl, es sei denn, beide senden dieselbe Anfrage, wiederholen auf dieselbe Weise und geben denselben Wert zurück.