Como enviar e-mails com Astro

No Astro, use um endpoint de API (`src/pages/api`) com SSR habilitado. Leia a chave via `import.meta.env`.

Instale o SDK (npm install publiq) e defina PUBLIQ_API_KEY no ambiente do servidor. O código abaixo roda no servidor — a API key nunca vai ao cliente.

import type { APIRoute } from 'astro';
import { Publiq } from 'publiq';

const publiq = new Publiq(import.meta.env.PUBLIQ_API_KEY);

export const POST: APIRoute = async ({ request }) => {
  const { to } = await request.json();
  const email = await publiq.emails.send({
    from: 'you@yourdomain.com',
    to,
    templateKey: 'welcome-email',
  });
  return new Response(JSON.stringify({ id: email.id }), {
    headers: { 'Content-Type': 'application/json' },
  });
};

Boas práticas

  • Chame o Publiq sempre do servidor — nunca exponha a API key no cliente.
  • Crie a instância do cliente uma vez e reutilize-a entre requisições.
  • Prefira templateKey a HTML inline para manter o conteúdo versionado.
  • Trate PubliqError (status/code); o SDK já retenta erros temporários com backoff.
  • Envie de um domínio verificado — veja Domínios.

Veja também

Como enviar e-mails com Astro — Publiq Docs