Python SDK
OpenEmail API の公式 Python クライアント。同期と非同期の両方に対応し、全体が型付けされ、エンドポイントごとに 1 つのメソッドがある。
内容
API 全体(送信、テンプレート、トラッキング、スレッド、下書き、ラベル、連絡先、オーディエンス、登録フォーム、一斉配信、ドメイン、ルール、Webhook、カレンダー、設定、ロール、メンバー、抑止、ファイル、使い捨て受信箱)を 1 つのパッケージにまとめ、すべてのリクエストとレスポンスの TypedDict、2 つのエラークラス、送信を重複させない再試行、Webhook 署名の検証機能を備えている。Python 3.10 以降で動作し、依存するのは httpx、anyio、typing-extensions だけである。ワークスペースの API キーか OAuth アクセストークンを保持するので、サーバーか自分のマシンで動くツールに置くものであり、認証情報を必要としないのは使い捨て受信箱だけである。
pip install openemailimport 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 で回す。
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 リファレンスが記述しているのと同じ面である。エンドポイントが何をするかはそちらを、どう呼び出すかはこちらを読むこと。文書化されたすべての操作に 1 つのメソッドが対応し、パッケージのパリティチェックが OpenAPI ドキュメントを読んでそれを証明する。
TypeScript のすべてのメソッドには、同じ名前を snake_case にした Python の対応メソッドがある。パリティチェックは各ペアを同じ引数で実行し、同じリクエストを送り、同じようにリトライし、同じ値を返さない限り失敗する。