[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-5533":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":33,"readmeContent":34,"aiSummary":35,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":36,"discoverSource":37},5533,"check-if-email-exists","reacherhq\u002Fcheck-if-email-exists","reacherhq","Check if an email address exists without sending any email, written in Rust. Comes with a ⚙️ HTTP backend.","https:\u002F\u002Freacher.email",null,"Rust",8784,631,52,72,0,2,12,97,9,39.4,"Other",false,"master",[26,27,28,29,30,31,32],"email","email-validation","email-validation-api","email-verification","email-verification-api","email-verifier","hacktoberfest","2026-06-12 02:01:11","[![Crate](https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fv\u002Fcheck-if-email-exists.svg)](https:\u002F\u002Fcrates.io\u002Fcrates\u002Fcheck-if-email-exists)\n[![Docs](https:\u002F\u002Fdocs.rs\u002Fcheck-if-email-exists\u002Fbadge.svg)](https:\u002F\u002Fdocs.rs\u002Fcheck-if-email-exists)\n[![Docker](https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fv\u002Freacherhq\u002Fbackend?color=0db7ed&label=docker&sort=date)](https:\u002F\u002Fhub.docker.com\u002Fr\u002Freacherhq\u002Fbackend)\n[![Actions Status](https:\u002F\u002Fgithub.com\u002Freacherhq\u002Fcheck-if-email-exists\u002Fworkflows\u002Fpr\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Freacherhq\u002Fcheck-if-email-exists\u002Factions)\n\n\u003Cbr \u002F>\u003Cbr \u002F>\n\n\u003Cp align=\"center\">\u003Cimg align=\"center\" src=\"https:\u002F\u002Fstorage.googleapis.com\u002Fsaasify-uploads-prod\u002F696e287ad79f0e0352bc201b36d701849f7d55e7.svg\" height=\"96\" alt=\"reacher\" \u002F>\u003C\u002Fp>\n\u003Ch1 align=\"center\">check-if-email-exists\u003C\u002Fh1>\n\u003Ch4 align=\"center\">Check if an email address exists without sending any email.\u003Cbr\u002F>Comes with a \u003Ca href=\".\u002Fbackend\">⚙️ HTTP backend\u003C\u002Fa>.\u003C\u002Fh4>\n\n\u003Cbr \u002F>\u003Cbr \u002F>\u003Cbr \u002F>\n\n## 👉 Live Demo: https:\u002F\u002Freacher.email\n\n\u003Cimg src=\"https:\u002F\u002Fstorage.googleapis.com\u002Fsaasify-uploads-prod\u002F696e287ad79f0e0352bc201b36d701849f7d55e7.svg\" height=\"68\" align=\"left\" \u002F>\n\nThis is open-source, but I also offer a **SaaS** solution that has `check-if-email-exists` packaged in a nice friendly web interface. If you are interested, find out more at [No2Bounce.com](https:\u002F\u002Fno2bounce.com\u002F?ref=github). If you have any questions, you can contact me at amaury@reacher.email.\n\n\u003Cbr \u002F>\n\n## Get Started\n\n3 non-SaaS ways to get started with `check-if-email-exists`.\n\n### 1. ⚙️ HTTP backend using Docker (popular method 🥇) [[Full docs](.\u002Fbackend\u002FREADME.md)]\n\nThis option allows you to run a HTTP backend using Docker 🐳, on a cloud instance or your own server. Please note that outbound port 25 must be open.\n\n```bash\ndocker run -p 8080:8080 reacherhq\u002Fbackend:latest\n```\n\nThen send a `POST http:\u002F\u002Flocalhost:8080\u002Fv0\u002Fcheck_email` request with the following body:\n\n```js\n{\n    \"to_email\": \"someone@gmail.com\",\n    \"proxy\": {                        \u002F\u002F (optional) SOCK5 proxy to run the verification through, default is empty\n        \"host\": \"my-proxy.io\",\n        \"port\": 1080,\n        \"username\": \"me\",             \u002F\u002F (optional) Proxy username\n        \"password\": \"pass\"            \u002F\u002F (optional) Proxy password\n    }\n}\n```\n**Note regarding proxy servers**\nIt is possible to operate Reacher with your own IP addresses. But if you wish to process more than very small volumes you will need SMTP proxy servers. For SMTP proxy servers please use [proxy25.com](https:\u002F\u002Fproxy25.com\u002F?ref=github)\n\n### 2. Download the CLI [[Full docs](.\u002Fcli\u002FREADME.md)]\n\n> Note: The CLI binary doesn't connect to any backend, it checks the email directly from your computer.\n\nHead to the [releases page](https:\u002F\u002Fgithub.com\u002Freacherhq\u002Fcheck-if-email-exists\u002Freleases) and download the binary for your platform.\n\n```bash\n> $ check_if_email_exists --help\ncheck_if_email_exists 0.9.1\nCheck if an email address exists without sending an email.\n\nUSAGE:\n    check_if_email_exists [FLAGS] [OPTIONS] [TO_EMAIL]\n```\n\nCheck out the [dedicated README.md](.\u002Fcli\u002FREADME.md) for all options and flags.\n\n### 3. Programmatic Usage [[Full docs](https:\u002F\u002Fdocs.rs\u002Fcheck-if-email-exists)]\n\nIn your own Rust project, you can add `check-if-email-exists` in your `Cargo.toml`:\n\n```toml\n[dependencies]\ncheck-if-email-exists = \"0.9\"\n```\n\nAnd use it in your code as follows:\n\n```rust\nuse check_if_email_exists::{check_email, CheckEmailInput, CheckEmailInputProxy};\n\nasync fn check() {\n    \u002F\u002F Let's say we want to test the deliverability of someone@gmail.com.\n    let mut input = CheckEmailInput::new(vec![\"someone@gmail.com\".into()]);\n\n    \u002F\u002F Verify this email, using async\u002Fawait syntax.\n    let result = check_email(&input).await;\n\n    \u002F\u002F `result` is a `Vec\u003CCheckEmailOutput>`, where the CheckEmailOutput\n    \u002F\u002F struct contains all information about our email.\n    println!(\"{:?}\", result);\n}\n```\n\nThe reference docs are hosted on [docs.rs](https:\u002F\u002Fdocs.rs\u002Fcheck-if-email-exists).\n\n## ✈️ JSON Output\n\nThe output will be a JSON with the below format, the fields should be self-explanatory. For `someone@gmail.com` (note that it is disabled by Gmail), here's the exact output:\n\n```json\n{\n\t\"input\": \"someone@gmail.com\",\n\t\"is_reachable\": \"invalid\",\n\t\"misc\": {\n\t\t\"is_disposable\": false,\n\t\t\"is_role_account\": false,\n\t\t\"is_b2c\": true\n\t},\n\t\"mx\": {\n\t\t\"accepts_mail\": true,\n\t\t\"records\": [\n\t\t\t\"alt3.gmail-smtp-in.l.google.com.\",\n\t\t\t\"gmail-smtp-in.l.google.com.\",\n\t\t\t\"alt1.gmail-smtp-in.l.google.com.\",\n\t\t\t\"alt4.gmail-smtp-in.l.google.com.\",\n\t\t\t\"alt2.gmail-smtp-in.l.google.com.\"\n\t\t]\n\t},\n\t\"smtp\": {\n\t\t\"can_connect_smtp\": true,\n\t\t\"has_full_inbox\": false,\n\t\t\"is_catch_all\": false,\n\t\t\"is_deliverable\": false,\n\t\t\"is_disabled\": true\n\t},\n\t\"syntax\": {\n\t\t\"domain\": \"gmail.com\",\n\t\t\"is_valid_syntax\": true,\n\t\t\"username\": \"someone\",\n\t\t\"suggestion\": null\n\t}\n}\n```\n\n## What Does This Tool Check?\n\n| Included? | Feature                                       | Description                                                                                                                     | JSON field                                                                |\n| --------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |\n| ✅        | **Email reachability**                        | How confident are we in sending an email to this address? Can be one of `safe`, `risky`, `invalid` or `unknown`.                | `is_reachable`                                                            |\n| ✅        | **Syntax validation**                         | Is the address syntactically valid?                                                                                             | `syntax.is_valid_syntax`                                                  |\n| ✅        | **DNS records validation**                    | Does the domain of the email address have valid MX DNS records?                                                                 | `mx.accepts_mail`                                                         |\n| ✅        | **Disposable email address (DEA) validation** | Is the address provided by a known [disposable email address](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDisposable_email_address) provider? | `misc.is_disposable`                                                      |\n| ✅        | **SMTP server validation**                    | Can the mail exchanger of the email address domain be contacted successfully?                                                   | `smtp.can_connect_smtp`                                                   |\n| ✅        | **Email deliverability**                      | Is an email sent to this address deliverable?                                                                                   | `smtp.is_deliverable`                                                     |\n| ✅        | **Mailbox disabled**                          | Has this email address been disabled by the email provider?                                                                     | `smtp.is_disabled`                                                        |\n| ✅        | **Full inbox**                                | Is the inbox of this mailbox full?                                                                                              | `smtp.has_full_inbox`                                                     |\n| ✅        | **Catch-all address**                         | Is this email address a [catch-all](https:\u002F\u002Fdebounce.io\u002Fblog\u002Fhelp\u002Fwhat-is-a-catch-all-or-accept-all\u002F) address?                  | `smtp.is_catch_all`                                                       |\n| ✅        | **Role account validation**                   | Is the email address a well-known role account?                                                                                 | `misc.is_role_account`                                                    |\n| ✅        | **Gravatar Url**                              | The url of the [Gravatar](https:\u002F\u002Fgravatar.com\u002F) email address profile picture                                                  | `misc.gravatar_url`                                                       |\n| ✅        | **Have I Been Pwned?**                        | Has this email been compromised in a [data breach](https:\u002F\u002Fhaveibeenpwned.com\u002F)?                                                | `misc.haveibeenpwned`                                                     |\n| 🔜        | **Free email provider check**                 | Is the email address bound to a known free email provider?                                                                      | [Issue #89](https:\u002F\u002Fgithub.com\u002Freacherhq\u002Fcheck-if-email-exists\u002Fissues\u002F89) |\n| 🔜        | **Syntax validation, provider-specific**      | According to the syntactic rules of the target mail provider, is the address syntactically valid?                               | [Issue #90](https:\u002F\u002Fgithub.com\u002Freacherhq\u002Fcheck-if-email-exists\u002Fissues\u002F90) |\n| 🔜        | **Honeypot detection**                        | Does email address under test hide a [honeypot](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSpamtrap)?                                        | [Issue #91](https:\u002F\u002Fgithub.com\u002Freacherhq\u002Fcheck-if-email-exists\u002Fissues\u002F91) |\n\n## 🤔 Why?\n\nMany online services (https:\u002F\u002Fhunter.io, https:\u002F\u002Fverify-email.org, https:\u002F\u002Femail-checker.net) offer this service for a paid fee. Here is an open-source alternative to those tools.\n\n## License\n\n`check-if-email-exists`'s source code is provided under a **dual license model**.\n\n### Commercial license\n\nIf you want to use `check-if-email-exists` to develop commercial sites, tools, and applications, the Commercial License is the appropriate license. With this option, your source code is kept proprietary. Purchase a `check-if-email-exists` Commercial License at https:\u002F\u002Freacher.email\u002Fpricing.\n\n### Open source license\n\nIf you are creating an open-source application under a license compatible with the GNU Affero GPL License v3, you may use `check-if-email-exists` under the terms of the [AGPL-3.0](.\u002FLICENSE.AGPL).\n\n[➡️ Read more](https:\u002F\u002Fdocs.reacher.email\u002Fself-hosting\u002Flicensing) about Reacher's license.\n\n## 🔨 Build From Source\n\nBuild the [CLI from source](.\u002Fcli\u002FREADME.md#build-from-source) or the [HTTP backend from source](.\u002Fbackend\u002FREADME.md#build-from-source).\n","该项目用于在不发送任何邮件的情况下验证电子邮件地址是否存在，使用Rust语言编写，并提供了一个HTTP后端。其核心功能是通过SMTP协议检查邮箱的有效性，而无需实际发送邮件，从而提高了效率和隐私保护。技术特点包括支持Docker部署、CLI工具以及可选的SOCKS5代理设置，便于用户根据需求灵活选择部署方式。适用于需要批量验证邮箱有效性但又不想打扰用户的场景，如营销活动前的数据清洗、注册流程中的即时验证等。","2026-06-11 03:03:50","top_language"]