gitmyhub

check-if-email-exists

Rust ★ 8.8k updated 3mo ago

Check if an email address exists without sending any email, written in Rust. Comes with a ⚙️ HTTP backend.

A self-hosted tool that checks whether an email address is real and deliverable, without sending a test email, by checking format, DNS records, and mail server responses, returning a clear safe/risky/invalid verdict.

RustDockersetup: moderatecomplexity 3/5

This project lets you check whether an email address is real and deliverable without actually sending an email to it. That matters for anyone building a sign-up form, a mailing list, or any system that collects email addresses, because sending to bad addresses wastes money and harms your sender reputation with email providers.

The tool works by running several checks in sequence. It first looks at whether the address is formatted correctly. Then it looks up the domain's mail server records to see if the domain can receive email at all. After that, it tries to open a connection with that mail server and asks whether the specific mailbox exists. It also checks whether the address belongs to a disposable email provider (the kind people use to sign up and then throw away), whether the inbox is full, and whether the address is a catch-all (meaning the server accepts everything regardless of whether the mailbox is real). All results come back as a structured JSON object with a clear reachability verdict: safe, risky, invalid, or unknown.

You can use it in three ways. The most popular option is running a prebuilt Docker container that exposes an HTTP API, so any application can send a request and get a JSON result back. There is also a command-line tool you can download and run on your own machine. If you are building something in Rust specifically, you can add the library directly to your project and call it from your code.

The project is written in Rust, a language chosen for speed and reliability. It is open source and available as a self-hosted tool, so you run it on your own server rather than sending email addresses to a third party. The same team also offers a paid hosted version called Reacher if you prefer not to manage the infrastructure yourself.

One practical note: the tool needs outbound port 25 open to contact mail servers, which many cloud providers block by default. The README suggests using an SMTP proxy service if you plan to run checks at any volume.

Where it fits