Cómo conectar tu formulario HTML

Formulario de contacto para Astro

Un sitio Astro generado de forma estática no tiene servidor que reciba formularios. En lugar de configurar un adaptador y renderizado en servidor, envíe el formulario a FormPost. Le reenviamos los datos por correo electrónico.

Preparación: cree un formulario en FormPost

Regístrese en FormPost, cree un formulario e indique el dominio en el que está su sitio. A continuación le mostramos la dirección de su formulario. Sustituye a https://www.formpost.eu/f/abc123 en el código de abajo; no hay que cambiar nada más.

1. Crear un componente de formulario

El componente solo contiene HTML, sin JavaScript. Astro lo entrega tal cual.

src/components/ContactForm.astro
<form action="https://www.formpost.eu/f/abc123" method="POST" data-astro-reload>
  <label for="email">Correo</label>
  <input type="email" id="email" name="email" required>

  <label for="message">Mensaje</label>
  <textarea id="message" name="message" required></textarea>

  <input type="text" name="_gotcha" style="display:none;" tabindex="-1" autocomplete="off">

  <button type="submit">Enviar</button>
</form>

2. Usar el componente

Importe el componente en la página donde deba aparecer el formulario.

src/pages/contact.astro
---
import ContactForm from '../components/ContactForm.astro';
---
<ContactForm />

Conviene saber

  • Si utiliza el ClientRouter (antes View Transitions), Astro gestiona el envío de formularios por su cuenta. El atributo data-astro-reload del código de arriba lo desactiva para este formulario, de modo que llega a FormPost de forma normal. Sin ClientRouter no molesta.
  • Solo aceptamos envíos desde el dominio indicado. Los envíos desde el servidor de desarrollo local (astro dev en localhost) se rechazan; para probar, utilice el formulario de prueba de su área de cliente.
  • No necesita adaptador ni renderizado en servidor. El formulario funciona con una compilación totalmente estática.

Lo que FormPost todavía no hace

  • Los formularios se envían de forma clásica, es decir, cambiando de página. De momento no admitimos el envío en segundo plano con JavaScript.
  • No aceptamos archivos adjuntos.
  • FormPost no recoge el consentimiento de tus visitantes. El aviso en tu propia política de privacidad sigue siendo cosa tuya; el texto para ello lo tienes ya redactado junto a tu formulario.

Más guías y comparativas

Crea un formulario y pruébalo

El plan Free cubre un formulario con diez avisos al día y no cuesta nada, de forma permanente.