Saltar para a documentação
Python

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 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 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.

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())

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.