Webhooks do Email Center: receber no seu sistema os eventos de entrega, devolução e queixa

E-mail·· 31 visualizações· 3 min de leitura

A resposta curta: grave um endereço HTTPS com PUT /v1/email/webhook e escolha os eventos: email.sent, email.delivered, email.bounced, email.complained e email.failed. A cada evento, de cada destinatário, enviamos um aviso assinado. Este webhook é diferente do webhook do SMS.

Gravar o webhook

curl -X PUT https://api.mozout.com/v1/email/webhook \
-H "Authorization: Bearer prod_..." \
-H "Content-Type: application/json" \
-d '{"url": "https://yourcompany.com/webhooks/email",
"events": ["email.delivered", "email.bounced", "email.complained"]}'

A resposta traz o segredo (secret) para conferir a assinatura. Só se mostra quando o webhook é criado ou quando pede um novo com "rotate_secret": true: guarde-o logo no servidor.

O que chega ao seu endereço

Um POST em JSON, no porto 443, uma chamada por evento e por destinatário, só para eventos depois de o webhook ser gravado:

{"event": "email.bounced", "created_at": "...",
"data": {"id": "5120", "event_id": "...", "recipient": "ana@example.com",
"detail": "...", "from": "...", "subject": "...", "simulated": false}}

Conferir a assinatura

1 Leia o cabeçalho X-Webhook-Signature: t=<hora unix>,v1=<hex>.
2 Calcule o HMAC-SHA256 de t + "." + corpo, com o corpo tal como chegou, sem o voltar a formatar, e o seu segredo.
3 Compare com o v1. Se não bater, recuse o aviso.
4 Responda 2xx em menos de 5 segundos. Trate o evento depois, numa fila sua.

Um exemplo em PHP, passo a passo, está em receber um webhook em PHP e verificar a assinatura.

Se o seu servidor falhar

Sem uma resposta 2xx em 5 segundos, tentamos de novo ao fim de 1 minuto, 5 minutos, 30 minutos, 2 horas e 6 horas. Use o event_id para não tratar o mesmo evento duas vezes.

Operação Para quê
GET /v1/email/webhook Ver o endereço, os eventos, a última entrega e o último erro
POST /v1/email/webhook/test Enviar agora um evento webhook.test assinado e ver o que o seu servidor respondeu
DELETE /v1/email/webhook Deixar de receber avisos
Não confie num aviso sem assinatura. Qualquer pessoa pode fazer um POST para o seu endereço. Sem conferir o v1, alguém podia marcar e-mails como entregues ou bloquear clientes no seu sistema.
Ainda não sabe o que é um webhook? Comece por o que é um webhook e webhook ou consulta periódica.

Quer que o seu sistema saiba sozinho o que aconteceu a cada e-mail? Veja a página da API.

Ver a página da API

VEJA TAMBÉM

Estados do e-mail transaccional: sent, delivered, bounced, complained e failed explicados

A lista de bloqueados do Email Center: porque um endereço deixa de receber e como o tirar

Receber um webhook em PHP e verificar a assinatura

O que é um webhook, e como testar um com curl

Webhook ou consulta periódica: como um sistema fica a saber que algo mudou noutro

Testar o e-mail transaccional sem enviar: chaves Sandbox, modo de teste e devoluções simuladas

PRODUTO RECOMENDADO

E-mail profissional no seu domínio

Caixas com o nome da sua empresa, sem publicidade, com filtro de spam. desde $6.60/mês (plano de 3 anos, com cupão)

Ver planos
Esta resposta foi útil? A sua resposta ajuda-nos a melhorar este artigo.