Todo cabe en un elemento Embed
HTML, agradecimiento y fetch caben en un Code Embed. Carrd admite scripts y el visitante no abandona la página.
integraciones · site builder
Añade Embed, pega el HTML y tu Carrd tendrá contacto sin widgets ni Zapier. Los envíos llegan a mailcontact y avisan por Discord, Slack, email o webhook.
Cada página de lanzamiento necesita contacto. mailcontact da bandeja y email real ([email protected]) para el pie. Sin DNS, servidor ni código adicional.
Carrd exige un plan con Embed (actualmente Pro Standard o superior). Después solo copiar y pegar: cinco minutos hasta la primera prueba.
configuración recomendada
Añade este HTML a tu sitio o utiliza el generador de formularios. Sustituye el enlace por el de tu formulario. El script alojado inserta la comprobación oculta, gestiona el envío y la verificación automática y conserva el borrador si hay errores. Tú controlas el HTML y el CSS. Los formularios Free muestran un enlace visible «Processed by mailcontact.app»; Pro y Plus no. Los avisos siguen el idioma del navegador; configura data-mailcontact-language="fr" en el formulario para forzar el francés.
<form action="https://mailcontact.app/api/forms/your-form-id" method="POST" data-mailcontact-form lang="es" data-mailcontact-language="es">
<input type="hidden" name="_language" value="es" />
<fieldset>
<legend>Contáctanos</legend>
<label>
Nombre (opcional)
<input name="name" type="text" autocomplete="name" maxlength="200" />
</label>
<label>
Correo electrónico
<input name="email" type="email" autocomplete="email" maxlength="320" required />
</label>
<label>
Mensaje
<textarea name="message" rows="5" maxlength="5000" required></textarea>
</label>
<noscript>
<div aria-hidden="true" style="position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;">
<label>Sitio web
<input name="company_website" type="text" tabindex="-1" autocomplete="off" />
</label>
</div>
</noscript>
<button type="submit">Enviar mensaje</button>
</fieldset>
<p data-contact-status role="status" aria-live="polite" aria-atomic="true"></p>
</form>
<script defer src="https://mailcontact.app/forms/v1.js" crossorigin="anonymous" referrerpolicy="no-referrer"></script>Para un componente con su propio controlador de envío, carga el mismo script y utiliza MailContact.prepare(form) y MailContact.send() en lugar del marcador automático. Consulta la referencia de interfaces personalizadas para carga, avisos y atribución de Free.
el código
Este ejemplo envía directamente a la API. Mantén el campo obligatorio company_website presente y vacío. Los envíos nativos abren JSON si tienen éxito o una página de verificación si hace falta. Los scripts sin verificación envían los mensajes sospechosos a Spam; el spam claro también se retiene sin alertas ni consumo de cuota. Una respuesta de éxito confirma recepción, incluida revisión, o el descarte silencioso de una trampa rellenada. Consulta protección contra spam para conocer todo el funcionamiento.
<form id="contact" action="https://mailcontact.app/api/forms/your-form-id" method="POST">
<input type="text" name="name" placeholder="Your name" />
<input type="email" name="email" placeholder="[email protected]" required />
<textarea name="message" placeholder="What's on your mind?" required></textarea>
<button type="submit">Send</button>
<input name="company_website" type="text" tabindex="-1" autocomplete="off"
style="position:absolute;left:-10000px" aria-hidden="true" />
</form>
<p id="contact-thanks" hidden>Thanks, your message is in.</p>
<p id="contact-status" role="status" aria-live="polite"></p>
<script>
var form = document.getElementById("contact");
form.addEventListener("submit", async function (e) {
e.preventDefault();
try {
var response = await fetch(form.action, { method: "POST", body: new FormData(form) });
var data = await response.json();
if (!response.ok || data.ok !== true) throw new Error(data.error || "Please try again.");
form.hidden = true;
document.getElementById("contact-thanks").hidden = false;
} catch {
document.getElementById("contact-status").textContent = "We could not confirm reception. Your text is still here.";
}
});
</script>cómo funciona
Una bandeja por página. Dale nombre y obtén endpoint y email al instante.
En Carrd añade Embed, tipo Code, pega el código y sustituye your-form-id por tu ID. Publica.
Añade Discord, Slack, email o webhook. Recibe avisos sin revisar otro panel.
por qué mailcontact
HTML, agradecimiento y fetch caben en un Code Embed. Carrd admite scripts y el visitante no abandona la página.
Carrd facilita lanzar varias páginas. Dales bandeja y dirección propias. Free cubre un proyecto y 50 envíos; Pro, diez y email entrante.
Para quienes prefieren email, publica [email protected] en el pie. Funciona al instante y llega junto al formulario.
preguntas frecuentes
Necesitas un plan Carrd con Embed: actualmente Pro Standard o superior. Free de mailcontact incluye proyecto, formulario y 50 envíos. Pro añade email, diez proyectos y 1000 mensajes.
Sí, pero el envío nativo muestra JSON en lugar de volver a la página. El script alojado mantiene al visitante en Carrd, verifica automáticamente y muestra avisos en la página. Actualmente no se puede configurar una redirección para envíos nativos.
Sí, es tu HTML. Añade style al mismo Embed con tus colores y fuentes. La API no altera el código. El script conserva el diseño y añade atribución visible en Free; Pro y Plus no la requieren.
Acepta 20 peticiones por minuto e IP, más que suficiente para una página de contacto. Pro (9 €/mes) y Plus (29 €/mes) permiten más volumen total.
relacionado
Formularios y una dirección de email real, juntos, con avisos en tus herramientas. Empieza con una cuenta gratuita.
Crear formulario gratisSin tarjeta de crédito. Free incluye un proyecto y 50 mensajes de formulario al mes.