Skip to content

Reacher

Checks whether an email address exists, without sending it an email, using a Rust library, CLI, or HTTP backenreacherhq/check-if-email-exists

Stars
10.4k
Forks
771
Licence
MIT
Language
Rust
Last update
6 days ago
Type
Library

What it is

check-if-email-exists tests whether an email address looks real and can receive mail, without sending a message to it. It checks syntax, the domain's mail records, whether the mail server responds, and extra signals like disposable or role-based addresses. It is written in Rust and can be used as a command-line tool, a Docker-run HTTP backend, or a Rust library.

  • Check a single address from the command line with the CLI binary
  • Run the Docker HTTP backend and send POST requests to /v0/check_email
  • Call check_email from a Rust program and read the returned result
  • Flag disposable or role-based addresses such as info@ in a signup flow

Great for

  • Developers adding email validation to a sign-up form or data pipeline
  • Teams cleaning mailing lists before a campaign
  • Engineers who want a self-hosted email verification service
  • Rust developers who need an email check inside their own program

Not ideal for

  • People who only need a simple syntax check, since a regex or basic library is enough for that
  • Anyone expecting results to be perfect, because SMTP checks depend on how each mail provider responds
  • Users on hosts that block outbound port 25, since the README says the Docker backend requires it
Step-by-step guide: how to use ReacherInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Run with Docker

    You'll need: Docker

    Run the HTTP backend with Docker

    docker run -p 8080:8080 reacherhq/backend:latest
  2. 2

    Run it

    • Start the backend with the docker run command above
    • Send a POST request to http://localhost:8080/v0/check_email with a JSON body containing to_email
    • Read the JSON response, focusing on is_reachable
    • Optionally add a proxy object to the request body if you use an SMTP proxy
  3. 3

    Get the most out of it

    • Use the proxy field in the request body to route checks through an SMTP proxy, as the README recommends for higher volumes
    • Read the is_reachable value alongside the detailed smtp and misc fields rather than relying on one number
    • Add the Rust crate to a project and call check_email directly if you do not need a server
    • Check the docs.rs reference for the full CheckEmailOutput struct

Downloads

Strengths

  • Does not send an email to the address being checked
  • Offers several ways to use it: CLI, HTTP backend, and Rust library
  • Returns detailed JSON fields such as is_reachable, syntax, mx, and smtp results

Trade-offs

  • The README says larger volumes need SMTP proxy servers, which are a separate paid service it recommends
  • Some checks listed in the README are still marked as planned, not finished
  • The README is truncated, so details of some features and limits are unclear

How it compares

ProjectStarsTypeLevelUpdatedBest for
check-if-email-exists (this)10.4kLibraryintermediate6 days agoDevelopers adding email validation to a sign-up form or data pipeline
react-email19.9kLibrarybeginner6 days agoDevelopers who already build web apps with React and want to write email templates the same way
EmailValidator11.6kLibrarybeginner4 days agoPHP developers adding email checks to sign-up or contact forms
frappe11kLibraryadvanced4 days agoDevelopers building business or internal data-heavy applications

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.