SDK de Python
O cliente oficial de Python para a API da OpenEmail. Síncrono e assíncrono, totalmente tipado, e com um método para cada endpoint.
O que é
Um pacote sobre toda a API (envio, modelos, seguimento, conversas, rascunhos, etiquetas, contactos, audiências, formulários de inscrição, difusões, domínios, regras, webhooks, calendário, definições, funções, membros, supressões, ficheiros e caixas descartáveis) com um TypedDict para cada pedido e resposta, duas classes de erro, repetições que não conseguem duplicar um envio e um verificador de assinaturas de webhooks. Corre em Python 3.10 ou mais recente e depende apenas de httpx, anyio e typing-extensions. Transporta uma chave de API do espaço de trabalho ou um token de acesso OAuth, por isso o seu lugar é num servidor ou numa ferramenta que corra na sua própria máquina, e as caixas descartáveis são a única parte que não precisa de credencial.
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>',})Síncrono e assíncrono
OpenEmail é síncrono, e AsyncOpenEmail é o seu equivalente assíncrono, com as mesmas opções e os mesmos métodos, que se chamam com await. Corre em asyncio e trio, e um iterate paginado passa a ser um 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())O cliente openemail partilhado é síncrono, por isso construa você mesmo um AsyncOpenEmail, uma única vez, e feche-o com aclose() ou com um bloco async with.
Por onde ir
Envolve a mesma API que todos os outros clientes
Tudo aqui é a mesma superfície que a referência da API documenta, por isso leia essa para saber o que faz um endpoint e esta para saber como o chamar. Há um método para cada operação documentada, e a verificação de paridade do pacote lê o documento OpenAPI para o provar.
Cada método de TypeScript tem um equivalente em Python com o mesmo nome em snake_case, e a verificação de paridade executa cada par com os mesmos argumentos e falha a não ser que enviem o mesmo pedido, repitam da mesma forma e devolvam o mesmo valor.