Ir a la documentación
Python

SDK de Python

El cliente oficial de Python para la API de OpenEmail. Síncrono y asíncrono, tipado de principio a fin, y con un método por cada endpoint.

Qué es

Un paquete sobre toda la API (envío, plantillas, seguimiento, hilos, borradores, etiquetas, contactos, audiencias, formularios de suscripción, envíos masivos, dominios, reglas, webhooks, calendario, ajustes, roles, miembros, supresiones, archivos y buzones desechables) con un TypedDict para cada solicitud y respuesta, dos clases de error, reintentos que no pueden duplicar un envío y un verificador de firmas de webhooks. Funciona en Python 3.10 o posterior y solo depende de httpx, anyio y typing-extensions. Lleva una clave de API del espacio de trabajo o un token de acceso OAuth, así que su sitio es un servidor o una herramienta que se ejecute en tu propia máquina, y los buzones desechables son la única parte que no necesita credencial.

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

Síncrono y asíncrono

OpenEmail es síncrono, y AsyncOpenEmail es su equivalente asíncrono, con las mismas opciones y los mismos métodos, que se llaman con await. Funciona con asyncio y trio, y un iterate paginado se convierte en un 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())

El cliente compartido openemail es síncrono, así que construye tú mismo un AsyncOpenEmail, una sola vez, y ciérralo con aclose() o con un bloque async with.

A dónde ir

Envuelve la misma API que todos los demás clientes

Todo lo de aquí es la misma superficie que documenta la referencia de la API, así que lee aquella para saber qué hace un endpoint y esta para saber cómo llamarlo. Hay un método por cada operación documentada, y la comprobación de paridad del paquete lee el documento OpenAPI para demostrarlo.

Cada método de TypeScript tiene un equivalente en Python con el mismo nombre en snake_case, y la comprobación de paridad ejecuta cada pareja con los mismos argumentos y falla a menos que envíen la misma solicitud, reintenten de la misma forma y devuelvan el mismo valor.