Protección contra spam
MailContact comprueba los formularios automáticamente. No tienes que activar nada.
¿Qué está incluido?
MailContact limita los mensajes repetidos y los volúmenes inusuales. Rechaza emails ausentes o no válidos, mensajes vacíos y textos demasiado largos.
Los envíos rechazados no aparecen en tu bandeja ni consumen cuota.
Añade una trampa oculta para bots
Nuestro script inserta un campo oculto al inicializar el formulario. Los visitantes no lo ven ni deben rellenarlo. Al enviar debe seguir presente y vacío. Si falta, bloquea con error; si está rellenado, descarta sin avisar.
Un bot que analiza el HTML puede reconocer y omitir este campo. Detecta envíos automatizados básicos, pero no demuestra que alguien sea humano. Las comprobaciones del servidor y la verificación automática siguen activas aunque esté vacío. Mantén los atributos de accesibilidad para no molestar a los visitantes reales.
Si la trampa está rellenada, el script descarta localmente el envío con la confirmación habitual antes de consultar ajustes o enviar el mensaje. Evita una petición innecesaria. El servidor comprueba de forma independiente los envíos HTTP directos.
Para una interfaz personalizada, llama a MailContact.prepare(form) una vez antes de que interactúe el visitante y envía su FormData con MailContact.send(). Las integraciones directas con la API y los formularios sin JavaScript deben incluir el campo, como se muestra abajo.
Revisa la carpeta Spam
Las señales claras de spam, promociones monetarias y campañas repetidas van a Spam durante 30 días. No generan notificaciones ni consumen cuota. Los propietarios y colaboradores pueden restaurar mensajes legítimos; entonces se entregan y cuentan normalmente.
Verificación automática del navegador
Algunos envíos sospechosos requieren una comprobación breve automática en el navegador. Sin imágenes ni cuentas nuevas. El script incluido la completa y reenvía el mensaje conservado. Encarece la automatización, pero no demuestra que el visitante sea humano.
Las integraciones JavaScript personalizadas pueden activar la verificación automática y gestionar el CHALLENGE_REQUIRED . Deben incluir la comprobación oculta; los sospechosos sin verificación pasan a Spam. Los formularios nativos abren una página de verificación si hace falta. Sin JavaScript se pueden enviar mensajes normales; si exige verificar, conserva el texto y ofrece revisión manual.
¿Puede seguir llegando spam?
Sí. Los controles reducen abuso, pero a veces detectan mensajes legítimos. Un enlace o Gmail no bastan para clasificar spam. Revisa la carpeta de vez en cuando.
Si recibes mucho spam, contáctanos con un ejemplo.
Para desarrolladores: añade el campo trampa
Las integraciones directas deben incluir un campo de texto llamado company_website. Ocúltalo con CSS como se muestra abajo. Si falta el campo, se devuelve 400 con FORM_CHECK_MISSING; si está rellenado, devuelve una respuesta de éxito sin crear mensaje, alerta ni consumo de cuota.
<form action="https://mailcontact.app/api/forms/your-form-id" method="POST">
<input type="email" name="email" placeholder="[email protected]" required />
<textarea name="message" placeholder="Your message" required></textarea>
<div class="hp" aria-hidden="true">
<label>
Website
<input type="text" name="company_website" tabindex="-1" autocomplete="off" />
</label>
</div>
<button type="submit">Send</button>
</form>
<style>
.hp {
position: absolute;
left: -9999px;
width: 1px;
height: 1px;
overflow: hidden;
}
</style>Utiliza CSS en lugar de type="hidden", que muchos bots omiten. Excluye este campo de la navegación por teclado, del autocompletado y de los lectores de pantalla con los atributos indicados arriba.
Este ejemplo utiliza envío nativo. Para confirmar sin salir de la página, sigue la referencia de la API de formularios.
Para desarrolladores: límites de envío
- 20 solicitudes por minuto e IP y 60 mensajes aceptados por minuto y bandeja.
- 5 envíos aceptados por minuto, remitente y formulario.
- Los mensajes idénticos del mismo remitente al mismo formulario se limitan a uno por minuto.
- El cuerpo se limita a 64 KB y el mensaje a 5000 caracteres.
Los límites se conservan tras reiniciar. Consulta la referencia de la API de formularios para campos y respuestas de error.