email59

Sign-up hygiene

Blocking throwaway emails at sign-up, without maintaining a list yourself

Disposable inboxes cost you free-tier abuse and dead newsletter addresses. Here is how to stop most of them in one request, and where to stop trying.

Open any sign-up issue tracker and you will find the same ticket: "Add CAPTCHA, honeypot and a disposable-email block to sign-up." Someone noticed that a chunk of new accounts use addresses that self-destruct after ten minutes, usually to grab a free tier twice.

What a throwaway address costs you

  • Free quotas claimed again and again by the same person.
  • Bounces later, when you send a receipt or a newsletter to an inbox that no longer exists. Bounces hurt your sender reputation.
  • Sign-up numbers that look better than the real ones.

The three usual approaches

  • Keep a blocklist file. There are good open lists on GitHub, but new throwaway domains appear every week and someone has to keep pulling updates.
  • Send a confirmation code. Still the strongest proof, because the person must read the inbox. It doesn't stop throwaway inboxes that do receive mail; it only proves the address works today.
  • Check the address before you accept it. Look at the domain: is it a known throwaway service, does it have mail servers (MX), does it publish SPF and DMARC like a real organisation would?

Checking an address in one request

The email59 deep check does that third step for free, with no key: GET https://email59.com/v1/check?email=.... It returns a 0-99 score, a verdict and each check it ran. A throwaway domain fails straight away:

email59 deep check: a mailinator.com address scored 30%, verdict risky, disposable check failed
A mailinator address in the free deep check: score 30, "Risky", disposable check failed. No email was sent.
curl -s "https://email59.com/v1/check?email=signup-test@mailinator.com"
# {"verdict": "risky", "score": 30,
#  "summary": "Throwaway email service: the inbox may vanish soon.", ...}

In a sign-up handler, a reasonable rule: refuse when the check named disposable fails, ask for another address when there is no MX record, and let everything else through to your confirmation code.

Where to stop

  • Don't block on a low score alone. Small companies with sloppy DNS are real customers.
  • Don't probe mailboxes over SMTP. Big providers don't answer honestly and it can get your IP listed. Our check deliberately skips it.
  • Pair it with rate limits per IP and a CAPTCHA if bots are the problem, not people.

The free check allows 100 lookups a day per IP; with an email59 key it's 1,000 a day per account.

Sources

Try the deep check More articles