Mudar do Postmark
Passe para o Mailroomly uma aplicação feita para o Postmark sem a reescrever: os pedidos e os handlers de webhooks ficam iguais, e só mudam o endereço para onde envia e o token.
O que se mantém
O Mailroomly fala a API de envio do Postmark e os seus formatos de webhook:
- Os endpoints.
POST /emailenvia um email ePOST /email/batchaté 500, na raiz dehttps://app.mailroomly.com(não em/api/v1). Aceitam o pedido do Postmark (From,To,Cc,Bcc,Subject,HtmlBody,TextBody,ReplyTo,Tag,Metadata,Headers,Attachments,TrackOpens,TrackLinks,MessageStream) e respondem na forma do Postmark, comErrorCode0e umMessageIDquando corre bem. - O cabeçalho do token. A chave de API de uma aplicação vai em
X-Postmark-Server-Token, onde estava o server token do Postmark.Authorization: Bearertambém funciona. - Os message streams. Um
MessageStreamcombroadcastno nome (broadcast,broadcasts,my-broadcast-stream) envia email de marketing; qualquer outro, ou nenhum, envia email transacional. - As ligações para cancelar a subscrição. No email de marketing,
{{{ pm:unsubscribe }}}passa a ser a ligação própria de cada destinatário, e cada cópia leva cabeçalhos de cancelamento com um clique. - Os webhooks. Com o formato Compatível com Postmark, os eventos chegam como os registos do Postmark:
Delivery,Bounce,SpamComplaint,Open,Click,SubscriptionChange, e o JSON de receção do Postmark para o email recebido, com os anexos.
Todos os campos e registos: Postmark compatibility (em inglês).
Antes de começar
- Um domínio verificado. O domínio de envio da aplicação tem de estar verificado no Mailroomly (O seu próprio domínio). Os registos DNS do Mailroomly e os do Postmark convivem, por isso ambos podem enviar pelo mesmo domínio durante a mudança.
- Um limite diário à medida. Uma conta nova envia para um número limitado de destinatários por dia até passar a conta de confiança. Consulte o Plano antes de mudar uma aplicação com muito envio e peça um limite maior se precisar (Confiança de envio).
- Os seus endereços bloqueados. Os endereços inativos do Postmark (devoluções permanentes, queixas de spam, cancelamentos da subscrição) não passam sozinhos. Exporte-os do Postmark e bloqueie-os em Atividade › Bloqueados › Bloquear um endereço, ou pela API, antes do primeiro envio (Bloqueados). Bloqueie as devoluções permanentes e as queixas para todos os tipos de email, e os cancelamentos da subscrição para o marketing.
- Modelos. O Mailroomly não tem modelos: uma aplicação que envia com
TemplateIdouTemplateAliasprepara o HTML e o texto antes de enviar.
Passar uma aplicação
As aplicações mudam uma de cada vez. Aplicações › Mudar do Postmark (também no Ctrl K) guia-o pelos três passos na aplicação web: ligar uma aplicação no formato do Postmark, apontar o seu código para o Mailroomly e mudar os webhooks.
1. Criar a aplicação e a chave
Em Mudar do Postmark, escolha Ligar uma aplicação em Ligue uma aplicação no formato do Postmark. Indique o Nome da aplicação e escolha O que faz (Envio de email chega para a maioria das aplicações), depois A que emails acede esta chave? e Criar a aplicação e a chave. Os webhooks da aplicação já usam o formato Compatível com Postmark.
A chave, que começa por mp_live_, substitui o server token do Postmark. Só é mostrada uma vez: copie-a para o cofre de segredos da aplicação. Para a limitar aos domínios da aplicação ou a um tipo de email, crie outra chave na página da aplicação e revogue a primeira (Aplicações e chaves).
2. Apontar o seu código para o Mailroomly
Mude dois valores na configuração da aplicação: o endereço para onde envia e o token. O pedido fica igual.
# Antes
curl https://api.postmarkapp.com/email \
-H "X-Postmark-Server-Token: $POSTMARK_SERVER_TOKEN" \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{"From": "…", "To": "…", "Subject": "…", "TextBody": "…", "MessageStream": "outbound"}'
# Depois
curl https://app.mailroomly.com/email \
-H "X-Postmark-Server-Token: $MAILROOMLY_API_KEY" \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{"From": "…", "To": "…", "Subject": "…", "TextBody": "…", "MessageStream": "outbound"}'
Com uma biblioteca do Postmark que permite mudar o endereço base, indique https://app.mailroomly.com. Os lotes vão para /email/batch no mesmo endereço.
Confirme cada MessageStream que a aplicação usa: um stream transacional com broadcast no nome, ou um stream de marketing sem ele, tem de ser renomeado na aplicação.
3. Mudar os webhooks
Na página da aplicação, abra o passo Webhook:
- URL do webhook: o endpoint que recebia os webhooks do Postmark.
- Formato do conteúdo: Compatível com Postmark (o guia já o escolheu).
- Eventos a enviar: marque o que o endpoint trata: Entregue, Devolvida, Queixa, Aberta, Clicada, Cancelou a subscrição, Entrega atrasada e Mensagem recebida.
- Guardar alterações e depois Enviar um evento de teste, para ver o que o seu endpoint responde.
Um único URL recebe todos os eventos que a aplicação escolhe; o Postmark permitia um URL por stream e por tipo. O URL não pode levar nome de utilizador e palavra-passe: se o seu endpoint dependia deles, confirme antes a assinatura que o Mailroomly envia com cada webhook (Webhooks).
4. Receber email, se a aplicação o fazia com o Postmark
Para uma aplicação que recebia email pelo webhook de receção do Postmark:
- Passe o domínio a Envio e receção (O que este domínio faz, nas Definições), normalmente o mesmo subdomínio que a aplicação usava com o Postmark, nunca um domínio cujo email está noutro serviço (Endereços e domínios).
- Crie o endereço que recebe, escolha a aplicação como Aplicação responsável e indique um URL do webhook de receção: o endpoint de receção atual da aplicação. Os pedidos chegam no JSON de receção do Postmark, assinados com o segredo da aplicação.
- Se a aplicação usava endereços com
+(resposta+pedido42@…), torne esse endereço o Endereço geral do domínio: a parte depois do+chega emMailboxHash. - Mude o registo MX do domínio para o valor indicado na página do domínio (Registos DNS) e espere até a página o mostrar em ordem. Baixe o tempo de vida do registo um dia antes, para poder voltar atrás depressa.
Definir a aplicação responsável ou o URL do webhook de receção de um endereço exige uma pessoa com sessão iniciada no Mailroomly: um agente não o pode fazer (Agentes de IA).
5. Testar
Envie uma mensagem a partir da aplicação. A resposta traz ErrorCode 0 e um MessageID, e o email aparece na Atividade, de Enviado a Entregue. Enviar um teste como esta aplicação, na página da aplicação, envia-lhe um e mostra os eventos que o seu webhook recebeu (Enviar um email de teste). Para a receção, envie um email para o endereço: aparece na caixa de entrada, e as Entregas de webhooks mostram a entrega ao seu endpoint.
6. Acompanhar a Atividade
Nos primeiros dias, acompanhe:
- A Atividade: cada envio, com o trajeto e os eventos (A página de um envio). Bloqueados mostra os endereços para onde o Mailroomly não envia, e porquê.
- As Entregas de webhooks: as entregas que o seu endpoint não aceitou, para corrigir e reenviar.
- Os Avisos: devoluções, queixas, limites diários e webhooks falhados, cada um a dizer o que fazer.
Voltar atrás
Mantenha o servidor do Postmark, os registos DNS e os webhooks até a mudança estar concluída. Para voltar, reponha os dois valores, o endereço e o token: a aplicação volta a enviar pelo Postmark em poucos minutos. Para a receção, aponte de novo o registo MX para o Postmark. O email já aceite pelo Mailroomly continua a ser enviado e fica na Atividade.
O que é diferente
| No Mailroomly | |
|---|---|
| Modelos | Não são suportados: prepare o HTML e o texto na aplicação antes de enviar. |
| As outras APIs do Postmark | Devoluções, pesquisa de mensagens, estatísticas, servidores, streams, supressões, assinaturas de remetente e domínios não são emulados. Use a REST API e a aplicação web (Atividade, Bloqueados, Endereços). |
| Remetentes | Qualquer endereço de um domínio verificado envia; não há assinaturas de remetente de um só endereço. |
| Envios seguros contra repetição | Não existem em /email. Para tornar as repetições seguras, envie por POST /api/v1/messages com um idempotencyKey. |
| Ids | O MessageID e o ID dos webhooks são UUID. O MessageID é o id da mensagem na API e nos webhooks do próprio Mailroomly. |
| Destinatários bloqueados | Ficam de fora de uma mensagem que ainda tem outros destinatários. Uma mensagem com todos os destinatários bloqueados recebe ErrorCode 406. |
| Limites | 50 destinatários e 10 MB por mensagem, 500 mensagens por lote, 100 pedidos por segundo por chave. |
| Recusas | O limite diário, ou o da própria chave, é ErrorCode 405 até à meia-noite UTC, tal como os emails do mês de um plano esgotados; um tipo de email em pausa, uma chave fora do seu âmbito ou marketing não permitido é 412; um domínio não verificado é 400; uma chave errada ou em falta é 10. |
| Atrasos na entrega | Chegam como um registo Bounce com Type: "Transient". |
| Campos dos webhooks | Sem ServerID, BounceID, Geo, Client, OS, Platform, ReadSeconds nem ClickLocation. |
| Repetição dos webhooks | As entregas que falham são repetidas durante cerca de 45 horas, depois ficam Falhada e podem ser reenviadas (Webhooks). Cada tentativa tem de terminar em 10 segundos: responda 2xx de imediato e faça o trabalho depois. |
| Assinatura | Cada webhook leva X-Messaging-Signature. Confirmá-la é opcional numa aplicação que muda, e recomendado. |
A referência para programadores, campo a campo: Postmark compatibility (em inglês).