Bulk email verifier for HR and anyone who sends to lists. Rules decide first; people decide only the exceptions. Every decision is logged.
| Select | Address | Provider | Status | Rules | Decision |
|---|
Connect your own Supabase project to share one queue with your team in real time. Each person signs in with an email link. Reload the page after signing in to switch to team mode.
| Address | Live status | Snapshot | Snapshot at (UTC) | Changed? | Rules | DNS | Provider |
|---|
Each button saves a file. Downloads are blocked inside the Claude viewer, so open this page as a file in your browser to save them. Text also goes into the box below to copy. Use the state JSON to move work between browsers.
Every address has one status. Work through them in this order: fix or remove REJECT, check PENDING, decide REVIEW, then send to APPROVE.
| Status | What it means | What to do |
|---|---|---|
| APPROVE | The address passed every rule, and DNS shows the domain accepts mail. Nothing in the list blocks it. | Safe to send. APPROVE does not guarantee the message reaches the inbox. After you send, record what happened in Accuracy check. |
| REJECT | The address failed a hard rule. It is malformed, uses a placeholder domain, its domain cannot receive mail, or the mail server refused it. It will bounce or was never valid. | Do not send. If you typed it wrong, open it, use Correct the address, and the address goes back to PENDING for a DNS re-check. Otherwise remove it from the list. |
| REVIEW | No hard failure, but a flag needs a person to decide. The reason is in the Rules column (see the review reasons below). | Read the reason. Fix or confirm the address, then decide with Accept as exception (code EX1 to EX4) or Reject (code REJ1 to REJ3). Your note must say what you checked. Open REVIEW rows block the send until decided. |
| PENDING | The tool has no DNS result for this address, so it cannot be verified yet. Nothing with this status can be approved. | Click Copy pending addresses, run check_emails.py on them, then upload the results under DNS results. The status changes on its own. |
Result labels: what each label means
| Label | Our status | What it means | What to do |
|---|---|---|---|
| Deliverable | APPROVE | Passed every check. The domain accepts mail. | Safe to send. Record the real result afterwards in Accuracy check. |
| Risky | REVIEW (R04, R05, R06) | Might work, but the address has a known risk: a typo domain, a throwaway address, or a shared inbox. | Decide first. Accept with the right exception code, or reject with a reason. |
| Unknown | REVIEW (R11, R12) | The check could not finish. The mail server did not answer, or the domain setup is unusual. | Retry the DNS check later. Only decide now if you have checked it yourself. |
| Undeliverable | REJECT (R01, R02, R03, R09, R10) | The address is invalid, the domain cannot receive mail, or the server refused the person. | Do not send. Correct a typo, or remove the address. |
| Duplicate | Removed on import | The same address appeared more than once in your list. | Nothing to do. Only one copy is kept, so it is never sent twice. |
| Not checked yet | PENDING (R08) | No DNS result has been imported for this address. | Run the DNS checker, then import the results. |
Review reasons (REVIEW rows)
| Code | What it means | What to do |
|---|---|---|
| R04 | The domain looks like a typo of a common provider, such as gmai.com for gmail.com. | Open the row. If the person meant the common provider, use Correct the address with the fixed address (it re-checks DNS), or accept with EX1 if the owner confirmed it is correct. |
| R05 | A disposable (throwaway) mail domain, such as mailinator.com. These are often fake sign-ups and rarely reach a real person. | Reject with REJ3 unless someone at the business approved this address for a test. Then accept with EX2 and name that approver in the note. |
| R06 | A role address, such as info@, sales@, support@ or noreply@. It reaches a shared inbox, not one person, and may be a spam trap. | Accept with EX2 only if the business approved sending to that shared inbox. Otherwise reject with REJ3 and say why in the note. |
| R11 | The DNS check could not finish: a temporary failure, port 25 blocked, or a DNS error. The result is unknown, not bad. | Run the DNS check again later for these addresses. When the retry succeeds, the status updates. If you must decide now, accept with EX3 and say how you verified. |
| R12 | The domain has no MX record, so mail falls back to its web address. That is unusual and may be misconfigured. | Check the domain yourself (for example, the company's website). If it clearly receives mail, accept with EX3 and say how you checked. Otherwise reject with REJ3. |
Hard rejects (REJECT rows)
| Code | What it means | What to do |
|---|---|---|
| R01 | Syntax invalid: missing @, extra characters, or no valid domain. | Correct the typo with Correct the address, or remove the row. |
| R02 | Too long: over 254 characters, or the part before @ is over 64. | Check the source. Such addresses are almost always errors. Remove them. |
| R03 | Placeholder domain, such as example.com, test.com or localhost. These are never real. | Remove. If it is a real address on a test domain, use a real one. |
| R09 | The domain does not exist, has a null MX record, or has no mail server. | Remove. If the domain was typed wrong, correct it and re-check. |
| R10 | The receiving server refused this recipient (a 5xx answer). The mailbox probably does not exist. | Remove. Only re-check if you have reason to believe the mailbox now exists. |
Exception codes (what to choose)
| Code | Use it when |
|---|---|
| EX1 | The list owner or a trusted person confirmed the address is correct. |
| EX2 | The business approved a role or disposable address for this purpose. Name the approver in the note. |
| EX3 | A DNS retry succeeded, or you checked the domain yourself. Say how in the note. |
| EX4 | None of the above. Explain fully in the note. |
| REJ1 | The address bounced before (for example, in an earlier send). |
| REJ2 | The owner confirmed the address is wrong or no longer used. |
| REJ3 | Something else. Explain in the note. |
Notes must be at least 10 characters and say what you checked. Your name is required to decide. Every decision is written to the audit log. REJECT rows cannot be accepted, only corrected.
Full rulebook is in RULEBOOK.md. Hard rules reject. Review rules need an exception decision. Pending rows need DNS results.
| Code | Rule | Result |
|---|
Exception codes (accept): EX1 owner confirmed, EX2 business-approved role or disposable, EX3 DNS verified or retry succeeded, EX4 other. Reject codes: REJ1 previously bounced, REJ2 owner confirmed invalid, REJ3 other. Notes must be at least 10 characters.
Each word has a short, everyday meaning. Use your browser's search (Ctrl+F) to find one.
| Time (UTC) | Reviewer | Action | Address | Change | Code | Note |
|---|
After you send, paste the addresses that bounced and the ones that were delivered. The tool compares them with its verdicts and shows how accurate it was. Outcomes stay in this browser.
Rate the tool from 1 (not useful) to 5 (works well). Ratings stay in this browser unless you copy them.
Choose a topic, then a question. Take your time. You can also type a question. If the answer is not here, email us.
Email the team: rchmadhumitha@gmail.com