Other

项目介绍

reacherhq/check-if-email-exists 是一个托管在 GitHub 上的开源项目,主要使用 Rust 编写,采用 Other 许可证,目前获得 10.3k 个 Star、736 次 Fork。

仓库全名
reacherhq/check-if-email-exists
开源许可证
Other
Star 数
10.3k
Fork 数
736
未关闭 Issue
58

README 摘要

check-if-email-exists Check if an email address exists without sending any email. Comes with a ⚙️ HTTP backend . 👉 Live Demo: https://reacher.email This 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. If you have any questions, you can contact me at [email protected]. Get Started 3…

完整内容见 GitHub 原始 README 或本页 。

常见问题

check-if-email-exists 用什么语言开发?

主要使用 Rust 编写,采用 Other 许可证,目前有 10.3k 个 Star。

check-if-email-exists 可以免费商用吗?

仓库标注的许可证为 Other,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 check-if-email-exists 的源码?

可以直接克隆仓库:git clone https://github.com/reacherhq/check-if-email-exists.git,默认分支为 master;安装与运行步骤见仓库 README。

check-if-email-exists 最近还在维护吗?

仓库最近一次更新为 1 周前,当前有 58 个未关闭 Issue;Star 数为 10.3k,可作为社区活跃度的参考。

简要分析

热度分
11859
价值分
6421
活跃状态
活跃

语言占比

Dockerfile
HCL
Makefile
PLpgSQL
PowerShell
Rust
Shell

Release

README

Crate Docs Docker Actions Status



reacher

check-if-email-exists

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




👉 Live Demo: https://reacher.email

This 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. If you have any questions, you can contact me at [email protected].


Get Started

3 non-SaaS ways to get started with check-if-email-exists.

This 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.

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

Then send a POST http://localhost:8080/v0/check_email request with the following body:

{
    "to_email": "[email protected]",
    "proxy": {                        // (optional) SOCK5 proxy to run the verification through, default is empty
        "host": "my-proxy.io",
        "port": 1080,
        "username": "me",             // (optional) Proxy username
        "password": "pass"            // (optional) Proxy password
    }
}

Note regarding proxy servers It 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

2. Download the CLI [Full docs]

Note: The CLI binary doesn’t connect to any backend, it checks the email directly from your computer.

Head to the releases page and download the binary for your platform.

> $ check_if_email_exists --help
check_if_email_exists 0.9.1
Check if an email address exists without sending an email.

USAGE:
    check_if_email_exists [FLAGS] [OPTIONS] [TO_EMAIL]

Check out the dedicated README.md for all options and flags.

3. Programmatic Usage [Full docs]

In your own Rust project, you can add check-if-email-exists in your Cargo.toml:

[dependencies]
check-if-email-exists = "0.9"

And use it in your code as follows:

use check_if_email_exists::{check_email, CheckEmailInput, CheckEmailInputProxy};

async fn check() {
    // Let's say we want to test the deliverability of [email protected].
    let mut input = CheckEmailInput::new(vec!["[email protected]".into()]);

    // Verify this email, using async/await syntax.
    let result = check_email(&input).await;

    // `result` is a `Vec<CheckEmailOutput>`, where the CheckEmailOutput
    // struct contains all information about our email.
    println!("{:?}", result);
}

The reference docs are hosted on docs.rs.

✈️ JSON Output

The output will be a JSON with the below format, the fields should be self-explanatory. For [email protected] (note that it is disabled by Gmail), here’s the exact output:

{
	"input": "[email protected]",
	"is_reachable": "invalid",
	"misc": {
		"is_disposable": false,
		"is_role_account": false,
		"is_b2c": true
	},
	"mx": {
		"accepts_mail": true,
		"records": [
			"alt3.gmail-smtp-in.l.google.com.",
			"gmail-smtp-in.l.google.com.",
			"alt1.gmail-smtp-in.l.google.com.",
			"alt4.gmail-smtp-in.l.google.com.",
			"alt2.gmail-smtp-in.l.google.com."
		]
	},
	"smtp": {
		"can_connect_smtp": true,
		"has_full_inbox": false,
		"is_catch_all": false,
		"is_deliverable": false,
		"is_disabled": true
	},
	"syntax": {
		"domain": "gmail.com",
		"is_valid_syntax": true,
		"username": "someone",
		"suggestion": null
	}
}

What Does This Tool Check?

Included? Feature Description JSON field
✅ Email reachability How confident are we in sending an email to this address? Can be one of safe, risky, invalid or unknown. is_reachable
✅ Syntax validation Is the address syntactically valid? syntax.is_valid_syntax
✅ DNS records validation Does the domain of the email address have valid MX DNS records? mx.accepts_mail
✅ Disposable email address (DEA) validation Is the address provided by a known disposable email address provider? misc.is_disposable
✅ SMTP server validation Can the mail exchanger of the email address domain be contacted successfully? smtp.can_connect_smtp
✅ Email deliverability Is an email sent to this address deliverable? smtp.is_deliverable
✅ Mailbox disabled Has this email address been disabled by the email provider? smtp.is_disabled
✅ Full inbox Is the inbox of this mailbox full? smtp.has_full_inbox
✅ Catch-all address Is this email address a catch-all address? smtp.is_catch_all
✅ Role account validation Is the email address a well-known role account? misc.is_role_account
✅ Gravatar Url The url of the Gravatar email address profile picture misc.gravatar_url
✅ Have I Been Pwned? Has this email been compromised in a data breach? misc.haveibeenpwned
🔜 Free email provider check Is the email address bound to a known free email provider? Issue #89
🔜 Syntax validation, provider-specific According to the syntactic rules of the target mail provider, is the address syntactically valid? Issue #90
🔜 Honeypot detection Does email address under test hide a honeypot? Issue #91

🤔 Why?

Many online services (https://hunter.io, https://verify-email.org, https://email-checker.net) offer this service for a paid fee. Here is an open-source alternative to those tools.

License

check-if-email-exists’s source code is provided under the MIT License.

评论

暂无评论