これはオープンソースですが、優しいフレンドリーなWebインターフェイスにパッケージ化されたcheck-if-email-existsがあるSaaSソリューションも提供しています。興味がある場合は、Reacherで詳細をご覧ください。ご質問がある場合は、[email protected]にご連絡ください。
3つの非SAAS方法はcheck-if-email-existsを開始します。
このオプションを使用すると、クラウドインスタンスまたは独自のサーバーで、Dockerを使用してHTTPバックエンドを実行できます。アウトバウンドポート25は開いている必要があることに注意してください。
docker run -p 8080:8080 reacherhq/backend:latest次に、次の本文でPOST http://localhost:8080/v0/check_emailリクエストを送信します。
{
"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
} ,
}注:CLIバイナリはバックエンドに接続せず、コンピューターから電子メールを直接チェックします。
[リリース]ページにアクセスして、プラットフォームのバイナリをダウンロードします。
> $ 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]すべてのオプションとフラグについては、専用のreadme.mdをご覧ください。
独自のRustプロジェクトでは、 Cargo.tomlにcheck-if-email-existsを追加できます。
[ dependencies ]
check-if-email-exists = " 0.9 "次のようにコードで使用します。
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 ) ;
}参照ドキュメントはdocs.Rsでホストされています。
出力は以下の形式のJSONであり、フィールドは自明である必要があります。 [email protected] (Gmailで無効になっていることに注意してください)の場合、正確な出力は次のとおりです。
{
"input" : " [email protected] " ,
"is_reachable" : " invalid " ,
"misc" : {
"is_disposable" : false ,
"is_role_account" : false
},
"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
}
}| 含まれていますか? | 特徴 | 説明 | JSONフィールド |
|---|---|---|---|
| ✅ | 電子メールの到達可能性 | このアドレスにメールを送信することに自信がありますか? safe 、 risky 、 invalid 、またはunknownの1つになる可能性があります。 | is_reachable |
| ✅ | 構文検証 | アドレスは構文的に有効ですか? | syntax.is_valid_syntax |
| ✅ | DNSレコードの検証 | メールアドレスのドメインには有効なMX DNSレコードがありますか? | mx.accepts_mail |
| ✅ | 使い捨てメールアドレス(DEA)検証 | アドレスは、既知の使い捨てのメールアドレスプロバイダーによって提供されますか? | misc.is_disposable |
| ✅ | SMTPサーバーの検証 | メールアドレスドメインのメール交換機に正常に連絡できますか? | smtp.can_connect_smtp |
| ✅ | 電子メールの配信可能性 | このアドレスに送信される電子メールは成果物ですか? | smtp.is_deliverable |
| ✅ | メールボックスが無効になっています | このメールアドレスは、電子メールプロバイダーによって無効になっていますか? | smtp.is_disabled |
| ✅ | 完全な受信トレイ | このメールボックスの受信トレイはいっぱいですか? | smtp.has_full_inbox |
| ✅ | キャッチオールアドレス | このメールアドレスはすべてのアドレスですか? | smtp.is_catch_all |
| ✅ | 役割アカウントの検証 | メールアドレスはよく知られている役割アカウントですか? | misc.is_role_account |
| ✅ | Gravatar URL | Gravatarのメールアドレスプロフィール写真のURL | misc.gravatar_url |
| ✅ | 私はpwnedされましたか? | このメールはデータ侵害で侵害されましたか? | misc.haveibeenpwned |
| 無料のメールプロバイダーチェック | メールアドレスは既知の無料の電子メールプロバイダーに縛られていますか? | 問題#89 | |
| 構文検証、プロバイダー固有 | ターゲットメールプロバイダーの構文ルールによると、アドレスは構文的に有効ですか? | 問題#90 | |
| ハニーポット検出 | テスト中のメールアドレスはハニーポットを非表示にしますか? | 問題#91 |
多くのオンラインサービス(https://hunter.io、https://verify-email.org、https://email-checker.net)は、このサービスを有給料金で提供しています。これらのツールに代わるオープンソースの代替品です。
check-if-email-existsのソースコードは、デュアルライセンスモデルの下で提供されます。
check-if-email-existsを使用して商用サイト、ツール、およびアプリケーションを開発する場合、商用ライセンスが適切なライセンスです。このオプションを使用すると、ソースコードは独自に保たれます。 https://reacher.email/pricingで商業ライセンスをcheck-if-email-existsを購入します。
GNU Affero GPLライセンスV3と互換性のあるライセンスの下でオープンソースアプリケーションを作成している場合は、AGPL-3.0の条件に基づいてcheck-if-email-existsを使用できます。
Reacherのライセンスの詳細をご覧ください。
ソースからCLIを構築するか、ソースからHTTPバックエンドを構築します。