Saltar para a documentação
Python

Domínios

`domains.list`, `list_all`, `iterate`, `get` e `update`.

Todos os métodos

usage.py
from openemail import openemail domains = openemail.domains.list()domain = openemail.domains.get('b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f') print(domain['receiving']['verified'], domain['sending']['status'])for address in domain['addresses']:    print(address['address'], address['enabled']) updated = openemail.domains.update(domain['id'], {'trackingHost': 'links.acme.com'})tracking = updated['tracking']print(tracking['status']) if tracking['record'] is not None:    print(tracking['record']['name'], tracking['record']['value']) openemail.domains.update(domain['id'], {'trackingHost': None})

A receção e o envio são dois factos independentes e são devolvidos como dois objetos. receiving.verified significa que o MX do domínio encaminha o seu correio para aqui e que o seu desafio de propriedade está publicado. sending reporta a verificação de assinatura de saída: status é verified, pending, failed, no_identity ou unknown, e canSend indica se um envio a partir do domínio seria aceite neste momento. Um veredicto negativo com mais de um dia é tratado como desconhecido e não como uma recusa, por isso baseie a lógica em canSend e não em status.

update define, volta a verificar ou remove o domínio de rastreio personalizado do domínio, um subdomínio como links.acme.com, e devolve o mesmo DomainDetailResource que get. tracking indica-o em todas as leituras. Até uma verificação ser bem-sucedida, tracking.status é pending e as ligações rastreadas e o píxel de abertura continuam a usar o host predefinido do OpenEmail. Depois de uma ser bem-sucedida, passa a active e o novo correio do domínio usa o domínio de rastreio para ambos.

get também lista os endereços do domínio. addresses.list() é a chamada relacionada: todos os endereços que ESTA CHAVE pode colocar num cabeçalho From, o que é mais restrito.

app_host é um espaço de nomes próprio. get, set, verify e delete leem e alteram o endereço da app web do espaço de trabalho, um subdomínio como mailbox.acme.com num destes domínios ou em qualquer outro domínio que o espaço de trabalho controle, onde a respetiva equipa inicia sessão com a marca do espaço de trabalho. set devolve os registos DNS a publicar, e delete pede um código de verificação a uma aplicação OAuth, tal como um set que substitui um host que o espaço de trabalho já tem.

branding define essa marca. get lê as ligações para o símbolo, o logótipo, o logótipo para o modo escuro e a foto de início de sessão, os dois tipos de letra e o fundo de início de sessão. update altera os tipos de letra e o fundo, upload_image(variant, data, content_type=...) carrega uma das quatro imagens e remove_image(variant) remove uma. É o logótipo que dá a marca ao endereço da app web e, num plano pago, aos emails enviados pelo espaço de trabalho.

Parâmetros: domains.get

idstrobrigatório
O id de `domains.list`, um UUID gerado quando o domínio foi adicionado, e não o nome do host, pelo que `get('example.com')` não encontra nada. A pesquisa está limitada à conexão da própria chave, além do id, pelo que o domínio de outro espaço de trabalho dá 404 e não 403.

Parâmetros: domains.update

idstrobrigatório
O mesmo id de domínio que `get` recebe. `domains:write` é o âmbito necessário.
patch['trackingHost']str | None
Um subdomínio do domínio, com no máximo 512 caracteres, como `links.acme.com`. São removidos os espaços nas extremidades e o valor é convertido para minúsculas, e um `https://` ou `http://` inicial, um caminho e um ponto final são eliminados. Um novo valor é validado, guardado e verificado na mesma chamada. O valor que o domínio já tem volta a executar a verificação, exceto se a última tiver sido há menos de 30 segundos. `None` ou uma string vazia remove o domínio de rastreio.

Um host recusado lança um OpenEmailApiError com trackingHost em param: 422 invalid_tracking_host para um nome que não pode ser usado, como um fora do domínio, 409 domain_not_verified para um novo host enquanto receiving.verified for falso e o registo TXT _openemail-challenge do domínio ainda não estiver publicado, e 409 tracking_host_in_use para um nome que outro domínio já usa, ou quando o domínio de rastreio é gerido por outro servidor OpenEmail. Uma chave limitada a endereços específicos recebe 422 capability_unsupported, porque um domínio de rastreio se aplica a todos os endereços do domínio.

Resposta: DomainDetailResource

objectLiteral['domain']
Sempre a string `domain`, tanto nas linhas de `list` como nesta.
idstr
O UUID do domínio. Estável durante toda a vida da linha, e o único identificador que as outras chamadas de domínio aceitam.
domainstr
O nome do host simples, em minúsculas: `example.com`. Único em todo o produto, um proprietário por domínio, pelo que dois espaços de trabalho não o podem reivindicar em simultâneo.
receiving.verifiedbool
É true assim que o DNS mostrou o MX do domínio a indicar um host que encaminha o seu correio para aqui e, quando a linha tem um token de desafio, o registo TXT `_openemail-challenge` correspondente. O MX por si só não prova nada, já que todos os domínios para os quais recebemos correio publicam os mesmos nomes de host; é por isso que o token existe, e é por isso que esta flag é a barreira que a entrega de entrada verifica antes de aceitar correio.
receiving.verifiedAtstr | None
Quando a verificação passou, em ISO-8601. É null enquanto não passar, e `verified` é derivado exatamente desta coluna, pelo que os dois nunca podem divergir.
receiving.catchAllbool
Indica se qualquer parte local é aceite. Ativo por predefinição nos domínios adicionados desde que esta passou a ser a regra; com ele desativado, só são aceites os endereços definidos no domínio e os restantes são rejeitados durante a sessão SMTP, pelo que o remetente recebe uma mensagem de devolução em vez de silêncio.
receiving.lastCheckedAtstr | None
Quando o DNS foi consultado pela última vez sobre este domínio. Null significa que nunca foi consultado, o que se lê de forma muito diferente de uma falha para quem adicionou um domínio há um minuto. Este endpoint reporta o resultado guardado e nunca executa uma verificação própria.
receiving.errorstr | None
Porque é que a última verificação não passou, em termos com que o proprietário possa agir: `No MX records yet. DNS changes can take a few minutes to spread.` é um exemplo típico. É null assim que passar, e é guardado em vez de derivado para que um recarregamento e a nova verificação agendada digam o mesmo.
sending.statusLiteral['verified', 'pending', 'failed', 'no_identity', 'unknown']
O estado de assinatura de saída tal como a última verificação o viu. Lido da verificação guardada em vez de sondado neste pedido, pelo que `sending.checkedAt` indica a sua antiguidade.
sending.canSendbool
Indica se um envio a partir deste domínio seria aceite neste momento. Um veredicto negativo com mais de um dia é tratado como desconhecido e não como uma recusa, pelo que este campo pode ser true enquanto `status` é `pending`. Baseie a lógica neste campo antes de um envio: um valor false significa que `emails.send` a partir deste domínio é recusado com 409 `domain_not_sendable`.
sending.checkedAtstr | None
Quando o estado de assinatura foi verificado pela última vez, em ISO-8601. Null significa nunca, o que se lê de forma muito diferente de uma falha.
sending.errorstr | None
A última falha de assinatura por extenso, ou null assim que a verificação passar.
sending.notestr
Uma de cinco frases, escolhida por `sending.status`, que explica o que esse estado significa em termos com que o proprietário de um domínio possa agir. Texto para uma pessoa ler. Baseie a lógica em `sending.canSend` e não neste campo.
trackingDomainTracking
O domínio de rastreio personalizado do domínio, tanto nas linhas de `list` como nesta, e aquilo que `update` altera.
tracking.hoststr | None
O domínio de rastreio, como `links.acme.com`, ou null quando não há nenhum definido.
tracking.statusLiteral['none', 'pending', 'active', 'failed']
`none` significa que não há domínio de rastreio definido, `pending` significa que nunca passou numa verificação, `active` significa que o novo correio o usa, e `failed` significa que passou antes e entretanto deixou de ser usado. Um host ativo deixa de ser usado após três verificações falhadas seguidas, ou quando a sua última verificação bem-sucedida tem mais de 2 horas.
tracking.activebool
True exatamente quando `status` é `active`, que é quando as ligações rastreadas e o pixel de abertura no correio novo do domínio usam o host.
tracking.targetstr
O endereço para onde aponta o registo CNAME, preparado exclusivamente para este domínio de rastreio. Uma string vazia enquanto `host` for null e enquanto o endereço para um novo host ainda estiver a ser preparado.
tracking.recordDomainTrackingRecord | None
O registo a publicar, com o nome de `host` e `target` como valor. Null quando não há domínio de rastreio, e enquanto o endereço de um host novo ainda estiver a ser preparado.
tracking.checkedAtstr | None
Quando o host foi verificado pela última vez, em ISO-8601. Null até à primeira verificação.
tracking.verifiedAtstr | None
Quando uma verificação passou pela última vez, em ISO-8601. Null para um host que nunca passou nenhuma.
tracking.errorstr | None
O que a última verificação encontrou, em palavras sobre as quais o dono do domínio pode agir. Null quando a última verificação passou ou quando ainda nenhuma correu. Um host que falhou uma ou duas verificações continua `active` e traz aqui o motivo.
addresseslist[DomainDetailResourceAddressesItem]
Todas as linhas de endereço do domínio, que é o que `get` acrescenta em relação a uma linha de `list`. Inclui as linhas que a própria entrega escreveu ao abrigo do catch-all, e essas deixam de ser aceites no momento em que o catch-all é desativado, pelo que o array não é uma lista do que vai receber correio.
addresses[].addressstr
O endereço completo, reconstruído a partir da parte local guardada e do nome do host, e convertido para minúsculas, pelo que corresponde sempre ao `domain` acima em vez de divergir dele.
addresses[].enabledbool
O valor false desativa o endereço, e um endereço desativado é rejeitado mesmo com o catch-all ativo. Todas as linhas são listadas de qualquer forma, por isso filtre por este campo em vez de ler o array como o conjunto de endereços que funcionam.
createdAtstr
Quando a linha do domínio foi adicionada, em ISO-8601. Não quando foi verificado: isso é `receiving.verifiedAt`, que pode ser null enquanto este está definido.

Referência