Mail API

E-mail transacional através de APIs HTTP: Brevo, Mailgun, Mailjet, Maileroo, Postmark, Mailchimp, Resend, SendGrid, MailerSend, Scaleway.

Extensão

Mail API

E-mail transacional através de APIs HTTP: Brevo, Mailgun, Mailjet, Maileroo, Postmark, Mailchimp, Resend, SendGrid, MailerSend, Scaleway.

  • Categoria: email
  • Estado: Disponível
  • Versão: 0.3.1
  • Preço: Desconhecido
  • Origem: Registro oficial de plugins
  • Instalação: Plugin sandbox do registro
  • Verificado: 2026-10-21

Descrição

O Mail API faz da API HTTP do seu fornecedor de e-mail o transporte de e-mail do EmDash. As ligações de início de sessão, os convites e o e-mail dos plugins saem através do Brevo, Mailgun, Postmark ou outro serviço, sem servidor SMTP.

Funcionalidades

  • 10 fornecedores: Brevo, Mailgun, Mailjet, Maileroo, Postmark, Mailchimp Transactional (Mandrill), Resend, SendGrid, MailerSend e Scaleway TEM.
  • Remetentes verificados: escolha um endereço ou um domínio que o seu fornecedor tenha verificado, ou escreva um.
  • Estado da conta: plano, créditos, quotas e reputação, lidos a partir da API do fornecedor.
  • Erros sobre os quais pode agir: a mensagem do próprio fornecedor, com o estado HTTP, o código de erro, uma sugestão, uma ligação para a página que o resolve e a resposta em bruto.
  • Fila de novas tentativas: quando o fornecedor está em baixo ou limita a frequência, o e-mail aguarda numa fila cifrada e é reenviado com um atraso crescente.
  • Histórico e registos: cada envio com o seu estado, ID da mensagem, tentativas e duração, com filtros, Reenviar, um gráfico de 14 dias e um widget do painel.
  • Formulário de teste na página de cada fornecedor.
  • Cifrado: as chaves de API são segredos do EmDash, o conteúdo guardado dos e-mails está cifrado e os e-mails de início de sessão nunca são guardados.
  • Administração em inglês, francês e alemão, utilizável no telemóvel.

Fornecedores

FornecedorCredenciaisRemetentes listadosEstado da conta
BrevoChave de APIEndereçosPlano, créditos
MailgunChave de API, domínio, regiãoDomínioEstado do domínio
MailjetChave de API, chave secretaEndereços, domíniosNão
MailerooChave de envioNãoNão
PostmarkToken do servidorNãoServidor, modo
Mailchimp TransactionalChave do MandrillDomíniosReputação, quota
ResendChave de APIDomíniosPlano, quotas
SendGridChave de APIEndereços, domíniosPlano, créditos
MailerSendToken de APIEndereços, domíniosQuota de API
Scaleway TEMChave secreta, ID do projetoDomíniosOferta, utilização

Onde os remetentes não são listados, escreva o endereço.

Instalação

Requisitos

  • EmDash 1.3.0 ou posterior com um executor de sandbox para plugins: Cloudflare Worker Loader (plano Workers Paid) ou @emdash-cms/sandbox-workerd no Node.js.
  • EMDASH_ENCRYPTION_KEY no site: cifra as chaves de API. Crie uma com npx emdash secrets generate e, no Cloudflare, guarde-a com wrangler secret put EMDASH_ENCRYPTION_KEY. Guarde uma cópia num gestor de segredos: uma cópia de segurança da base de dados é inútil sem ela.
  • Um agendador para a fila de novas tentativas: integrado no Node.js. No Cloudflare, um cron trigger * * * * * e o handler scheduled (os modelos do EmDash incluem ambos).
  • Uma conta e uma chave de API de um dos fornecedores suportados.

Instalar

  1. Instale o Mail API a partir do registo de plugins.
  2. Reveja as permissões e confirme: pedidos apenas aos anfitriões de API dos fornecedores e entrega do e-mail do EmDash.

A partir do npm: pnpm add @devbitme/emdash-plugin-apimail, e depois adicione a importação predefinida a sandboxed: [...] na integração emdash() de astro.config.mjs.

Configurar

  1. Na administração, abra Mail API e depois Configure no seu fornecedor.
  2. Cole a(s) chave(s) e guarde. A secção Account confirma que a chave funciona.
  3. Em Send a test email, escolha um remetente verificado, introduza o seu endereço e envie. Deixe Use as the default sender ativado para manter esse remetente.
  4. Clique em Activate no cartão do fornecedor na lista.
  5. Se estiverem instalados vários transportes de e-mail, selecione Mail API em Settings → Email. Com astro dev, o transporte de consola do EmDash conta como um.

Definições

O separador Queue & history define durante quanto tempo um e-mail pode aguardar na fila (15 minutos para os e-mails de início de sessão e 24 horas para os restantes, por predefinição), se o conteúdo dos e-mails é guardado e durante quanto tempo se mantêm o histórico e os registos (30 dias por predefinição).

Documentação completa: https://git.devbit.me/devbit.me/emdash-plugin-apimail

Perguntas frequentes

Preciso de um servidor SMTP?

Não. O Mail API chama a API HTTP do fornecedor por HTTPS, pelo que também funciona onde o SMTP não está disponível, como no Cloudflare Workers.

O «Send test email» do EmDash só diz «Failed to send test email».

Use o formulário Send a test email na página do fornecedor: mostra a mensagem do fornecedor, uma sugestão e a resposta em bruto. O erro também está em Logs e no registo do servidor.

A lista de remetentes está vazia ou mostra HTTP 401 ou 403.

A chave consegue enviar, mas não listar remetentes. O Resend precisa de uma chave Full access, o SendGrid de acesso de leitura a Sender Authentication e User Account, o MailerSend de Domains e Sender identity, o Scaleway de TransactionalEmailReadOnly e o Mailgun da chave da conta em vez de uma chave de envio de domínio. Pode, mesmo assim, escrever o endereço do remetente.

O erro diz que o endereço IP não é permitido.

Adicione o IP de saída do seu anfitrião à lista de permissões do fornecedor, ou desative a restrição. O erro tem uma ligação para a página certa.

O que acontece quando o fornecedor está em baixo?

Erros de rede, tempos limite, HTTP 429 e 5xx colocam o e-mail numa fila cifrada. É repetido ao fim de 1, 5, 15 e 30 min, depois 1 h, 2 h e de 4 em 4 h, através do fornecedor ativo nesse momento. Os e-mails de início de sessão expiram ao fim de 15 minutos, os outros ao fim de 24 horas. Os erros permanentes, como uma chave inválida ou um destinatário rejeitado, não são repetidos.

A fila nunca é executada.

Abra o separador Security do Mail API: lista as tarefas agendadas e tem um botão Repair. No Cloudflare, verifique o cron trigger e o handler scheduled.

O conteúdo dos meus e-mails é guardado?

Apenas enquanto aguarda na fila, ou no histórico se ativar Keep email content in the history. Em ambos os casos está cifrado. Os e-mails de início de sessão e de convite nunca são guardados após o envio.

Posso usar vários fornecedores?

Sim. Configure vários e clique em Activate no que envia. Durante uma falha, ative outro: os e-mails na fila são reenviados através dele.

Segurança

Comunicar uma vulnerabilidade

Envie um e-mail para [email protected]. Por favor, não abra primeiro uma issue pública.

Permissões

  • Pedidos de rede, limitados aos anfitriões de API dos fornecedores: api.brevo.com, api.mailgun.net, api.eu.mailgun.net, api.mailjet.com, api.us.mailjet.com, smtp.maileroo.com, api.postmarkapp.com, mandrillapp.com, api.resend.com, api.sendgrid.com, api.eu.sendgrid.com, api.mailersend.com, api.scaleway.com.
  • Transporte de e-mail: o EmDash entrega o seu e-mail de saída ao plugin, que o envia através do fornecedor ativo.

O plugin é executado na sandbox do EmDash e não consegue aceder a mais nada.

Chaves de API

As chaves de API são definições secretas do EmDash, cifradas com AES-GCM através da EMDASH_ENCRYPTION_KEY do site. Uma chave guardada nunca volta ao navegador: a administração só mostra os seus últimos 5 caracteres. Qualquer segredo configurado que um fornecedor repita numa mensagem de erro é mascarado.

Dados guardados

  • Histórico: destinatário, assunto, fornecedor, estado, ID da mensagem, tentativas, duração e erro. Eliminado ao fim de 30 dias por predefinição.
  • Conteúdo do e-mail: guardado apenas enquanto o e-mail aguarda na fila, ou no histórico se o ativar. É cifrado com AES-GCM através de uma chave aleatória de 256 bits, ela própria guardada como segredo do EmDash. Os e-mails de início de sessão e de convite nunca são guardados após o envio.
  • Registos: falhas, execuções e limpezas da fila, eliminados juntamente com o histórico.
  • Remetentes verificados e estado da conta: colocados em cache no armazenamento do plugin com uma impressão digital das definições, nunca uma chave.

O e-mail vai apenas para a API do fornecedor ativo. Nada mais sai do site.

Rota pública

Uma rota é pública: GET /_emdash/api/plugins/apimail/logo?p=. Serve os logótipos dos fornecedores incluídos no plugin e não lê quaisquer dados.

Administração

As páginas de administração usam uma rota privada: antes de o plugin ser executado, o EmDash exige um utilizador com sessão iniciada autorizado a gerir plugins e o cabeçalho CSRF.

Registo de alterações

0.3.1

  • Três cartões de fornecedor por linha em vez de dois: uma lista mais compacta no ambiente de trabalho.
  • Uma ligação Website em cada cartão de fornecedor, aberta num novo separador.
  • Set as default passa a Activate, suficientemente curto para um cartão no telemóvel.
  • A página de um fornecedor abre de imediato a partir dos dados guardados, com a sua idade. O fornecedor só é chamado quando uma chave é guardada ou com **Refresh from **, e uma mensagem indica quanto tempo demorou a chamada.

0.3.0

  • Botão Set as default no cartão de cada fornecedor configurado.
  • Uma falha na leitura dos remetentes verificados ou do estado da conta é escrita nos registos e repetida no carregamento seguinte da página, a menos que a chave não tenha a permissão.
  • A lista de remetentes indica quando foi lida, também após um erro.
  • As páginas de administração adaptam-se ao telemóvel: dois cartões de fornecedor por linha, no máximo três cartões de estatísticas, valores longos na sua própria linha, menos colunas no histórico.
  • Entradas de menu mais curtas: History, Queue, Logs.
  • Hífenes simples em vez de travessões longos em etiquetas, registos, erros e no assunto do e-mail de teste.
  • Pacote mais pequeno: os logótipos dos fornecedores são mosaicos WebP sem perdas.
  • Ficha no registo: separadores de descrição, instalação, perguntas frequentes, registo de alterações e segurança, e um banner.

0.2.0

  • Escolha de um remetente verificado a partir do fornecedor: um endereço verificado, qualquer endereço de um domínio verificado ou introdução manual. No separador Sender e em cada formulário de teste.
  • Estado da conta na página de cada fornecedor: plano, créditos, quotas e reputação.
  • Um teste já não precisa de um remetente configurado, e Use as the default sender mantém o que funcionou.
  • Uma chave guardada mostra os seus últimos 5 caracteres.
  • Administração em alemão.