Cómo enviar correos con Astro

En Astro, usa un endpoint de API (`src/pages/api`) con SSR habilitado. Lee la clave vía `import.meta.env`.

Instala el SDK (npm install publiq) y define PUBLIQ_API_KEY en el entorno del servidor. El código de abajo corre en el servidor — la API key nunca llega al 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' },
  });
};

Buenas prácticas

  • Llama a Publiq siempre desde el servidor — nunca expongas la API key en el cliente.
  • Crea la instancia del cliente una vez y reutilízala entre peticiones.
  • Prefiere templateKey sobre HTML inline para mantener el contenido versionado.
  • Maneja PubliqError (status/code); el SDK ya reintenta errores transitorios con backoff.
  • Envía desde un dominio verificado — ver Dominios.

Ver también

Cómo enviar correos con Astro — Publiq Docs