Protezione antispam

MailContact controlla automaticamente gli invii dei moduli. Non devi attivare nulla.

Cosa è già incluso?

MailContact limita messaggi ripetuti e volumi insolitamente alti. Rifiuta anche invii con email mancante o non valida, messaggio vuoto o testo eccessivo.

Gli invii rifiutati non compaiono nella casella e non consumano la quota mensile.

Aggiungi una trappola nascosta per i bot

Lo script inserisce automaticamente un campo nascosto all’inizializzazione del modulo. I visitatori non lo vedono né devono compilarlo. All’invio deve ancora essere presente e vuoto. Se manca, l’invio viene bloccato con un errore; se compilato, viene scartato senza avviso.

Un bot che esamina l’HTML può riconoscere e ignorare questo campo. Ferma gli invii automatici più semplici, senza dimostrare che qualcuno sia umano. I controlli sul server e la verifica automatica restano attivi anche con il campo vuoto. Mantieni gli attributi di accessibilità per evitare che la trappola ostacoli i visitatori reali.

Se la trappola è compilata, lo script scarta localmente l’invio mostrando la solita conferma, prima di recuperare impostazioni o inviare il messaggio. Evita una richiesta API inutile. Gli invii HTTP diretti vengono comunque controllati autonomamente dal server.

Per un’interfaccia personalizzata, chiama MailContact.prepare(form) una volta prima dell’interazione del visitatore, poi invia il suo FormData con MailContact.send(). Le integrazioni API dirette e i moduli senza JavaScript devono includere il campo autonomamente, come mostrato sotto.

Controlla la cartella Spam

Segnali forti di spam, promozioni finanziarie evidenti e campagne ripetute finiscono in Spam per 30 giorni. Non inviano notifiche né consumano quota. Proprietari e collaboratori possono ripristinare un messaggio legittimo; il ripristino lo consegna e lo conteggia normalmente.

Verifica automatica del browser

Alcuni invii sospetti richiedono un breve controllo automatico del browser. Nessuna immagine da risolvere né account da creare. I moduli generati includono lo script MailContact ospitato, che completa il controllo e reinvia automaticamente il messaggio conservato. Il controllo aumenta il costo dell’automazione, senza dimostrare che il visitatore sia umano.

Le integrazioni JavaScript personalizzate possono attivare la verifica automatica e gestire il CHALLENGE_REQUIRED . Devono includere il controllo nascosto obbligatorio; gli invii sospetti senza supporto alla verifica vanno in Spam per revisione. I moduli HTML nativi aprono una pagina di verifica quando serve. Un visitatore senza JavaScript può inviare normalmente; se serve una verifica, la pagina conserva il testo e propone l’invio per revisione manuale.

Lo spam può comunque passare?

Sì. I controlli riducono gli abusi e a volte segnalano messaggi legittimi. Un link o indirizzo Gmail da soli non bastano mai a classificare spam. Controlla occasionalmente Spam.

Se ricevi molto spam, contattaci con un esempio.

Per sviluppatori: aggiungi il campo trappola per i bot

Le integrazioni dirette devono includere un campo di testo chiamato company_website. Nascondilo con CSS, come sotto. Se manca, viene restituito 400 con FORM_CHECK_MISSING; un campo compilato restituisce successo senza creare messaggi, avvisi o consumo della quota.

contact-form.html
<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>

Usa CSS anziché type="hidden", che molti bot ignorano. Escludi il campo dalla navigazione da tastiera, dalla compilazione automatica e dagli screen reader con gli attributi indicati sopra.

Questo esempio usa un invio nativo. Per una conferma nella stessa pagina segui la riferimento API dei moduli.

Per sviluppatori: limiti agli invii
  • 20 richieste al minuto per IP e 60 messaggi accettati al minuto per casella.
  • 5 invii accettati al minuto per mittente e modulo.
  • I messaggi identici dallo stesso mittente allo stesso modulo sono limitati a uno al minuto.
  • Il corpo della richiesta è limitato a 64 KB; il testo del messaggio a 5.000 caratteri.

I limiti persistono dopo il riavvio. Consulta riferimento API dei moduli per campi e risposte di errore.