Check any email address

See whether it's disposable, whether its mail server exists, and how risky it looks. Free, no signup.

Check an email
Disposable Email Domain

Detect and block b20nn6.cn emails

b20nn6.cn hands out temporary inboxes. Someone signing up with one can't be reached again, and is often after your free tier. Fidro spots it in one API call.

Severity: Medium (3/5) Source: disposable-email-domains

How to block b20nn6.cn in your app

Add Fidro's email validation API to your signup flow. One API call detects b20nn6.cn and nearly 10,000 other disposable domains in under 200ms.

curl -X POST https://fidro.io/api/validate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email": "user@b20nn6.cn"}'

// Response:
{
  "risk_score": 85,
  "recommendation": "Block",
  "checks": { "disposable_email": true }
}
// In your registration controller or form request
$response = Http::withToken(config('services.fidro.key'))
    ->post('https://fidro.io/api/validate', [
        'email' => $request->email,
    ]);

if ($response['checks']['disposable_email']) {
    return back()->withErrors([
        'email' => 'Disposable email addresses are not allowed.'
    ]);
}
const res = await fetch('https://fidro.io/api/validate', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.FIDRO_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ email: req.body.email }),
});

const data = await res.json();
if (data.checks.disposable_email) {
  return res.status(422).json({ error: 'Disposable emails not allowed' });
}
import requests

response = requests.post(
    'https://fidro.io/api/validate',
    headers={'Authorization': f'Bearer {FIDRO_API_KEY}'},
    json={'email': email},
)

result = response.json()
if result['checks']['disposable_email']:
    raise ValidationError('Disposable emails are not allowed')

Or test an @b20nn6.cn address in the free email checker.

What happens if you let it sign up?

b20nn6.cn hands out temporary inboxes. People use them to sign up without giving a real address, and the inbox usually disappears soon after.

If you let it through, you get an account you can't email, can't onboard and can't win back. If the same person returns with another throwaway address, they get your free tier again. Your user count goes up; your real users don't.

Fidro rates b20nn6.cn 3/5, which is moderate risk. Flag or block signups from it, depending on how much your free tier is worth protecting.

Common questions

How do I detect b20nn6.cn emails in my app?
Send the address to Fidro's API with a POST to https://fidro.io/api/validate. If it is on b20nn6.cn, the disposable_email check comes back true and the risk score goes up, so your code can block or challenge the signup. Code for cURL, Laravel, Node.js and Python is on this page.
Should I block b20nn6.cn at signup?
For most products, yes. Addresses on b20nn6.cn are temporary, so you cannot reach the person again, and they are a common way to claim a free tier more than once. If you would rather not lose a real user who values their privacy, challenge the signup instead, for example by asking for a different email.
What is the risk score for b20nn6.cn?
Fidro rates b20nn6.cn 3/5 for severity in its disposable domain list. A disposable email raises the risk score of a signup, and Fidro combines it with the IP and network checks to decide between allow, challenge and block.

Risk details

Domain b20nn6.cn
Status Disposable
Severity
3/5
Last Updated October 24, 2026
Source disposable-email-domains

Keep throwaway inboxes out.

200 free validations a month. No credit card, no sales call.