もしあなたがB2B販売、マーケティングアウトレッチ、募集、あるいは単に真剣なネットワークをやっているなら、正しいプロフェッショナルな電子メールアドレスを見つけることが重要です。コスト連絡先情報を確認するために毎年数百または数千ドルを支払うことは、特にブートストラップされたスタートアップや小規模なチームにとって、必要悪のように感じることができます。
そのスティッカーショック、Rustへの愛情と良い技術的な挑戦と組み合わせて、まさにその理由です。Email Sleuthそれは私たちのオープンソースの試みで、強力な、コスト効率プロの電子メールの発見と検証のための代替手段 席あたりのライセンスとクレジット制限を忘れ、コントロールを取り戻すことについてです。
どのように機能しますか? 単なるパターン以上に
核心として、Email Sleuthは、単に共通のパターンのリストを吐くよりも賢い(それもそうであるが)。
- スマートパターン生成: 最初の名前と最後の名前(john.doe、jdoe、 johnd、 doe.j など)に基づく可能性のあるメール形式の包括的なリストを生成することから始まります。
- SMTP Verification (The Classic Check): This is the old-school method. Email Sleuth connects directly to the company's mail server (found via MX records) and politely asks, "Hey, would you accept mail for jdoe@example.com?" using standard SMTP commands (MAIL FROM, RCPT TO). A direct "yes" or "no" is great!
- The Catch: This is becoming less reliable. Many servers block these probes, use temporary "greylisting" delays, or worse, are configured as "catch-alls" that accept everything, telling you nothing about a specific address. We now specifically test for and handle catch-all domains.
- Headless Browser Magic (The Clever Workaround): When SMTP lets us down, we get creative. Email Sleuth can fire up a headless Chrome browser (using the fantoccini Rust crate and needing a running WebDriver instance like chromedriver) and automate common web flows:
- Yahoo & Microsoft Password Resets: We mimic a user trying to reset a password for the target email. The screens shown or errors encountered during these flows often reveal whether an account actually exists, even when SMTP is useless! It's a bit like lockpicking, but for email validation.
- API Heuristics (The Educated Guess): Microsoft 365 アカウントの場合、もう一つのトリックがあります。ユーザーの OneDrive for Business URL を予測し、迅速なチェック(HEAD リクエスト)を送信します。返された HTTP ステータスコード(403 Forbidden のような 404 Not Found)に基づいて、教育を受けた推測ができます。
- プロバイダー認識: Email Sleuth は、ドメインのメール サーバーのレコードに基づいて、メール プロバイダー (Gmail、Microsoft 365, Yahoo など) を識別しようとします。
- Confidence Scoring: すべての証拠(パターンマッチ、SMTP結果、ヘッドレスチェック結果、APIヒント)は、それぞれの潜在的な電子メールのための信頼ポイント(0-10)に貢献します。
Rust で作られた、効率性のために設計
なぜRust? スピード、セキュリティ、優れたコンコレクションサポート(tokio)は、この種のネットワーク関連のタスクに最適です。 複数のチェックを同時に実行し、タイムアウトを優雅に処理し、リソースを効率的に管理できます。 コアを駆動するキーカレーには、reqwest(HTTP)、trust-dns-resolver(DNS)、lettere(SMTP)、fantoccini(headless)、serde/toml(データ)、clap(CLI)があります。
最近、我々は主要なリファクターを実施し、論理をコアライブラリ(email-sleuth-core)と別々のCLIツールに分割しました。これにより、コアの論理は他のRustプロジェクトで再利用可能になり、コードベースはクリーンで維持しやすくなります。
Give It A Whirl シングル
Email Sleuth は 2 つの方法で使用できます。
- The CLI Tool:
- Single lookup: email-sleuth --name "Jane Doe" --domain "example.com"
- Batch processing: email-sleuth --input contacts.json --output results.json
- Enable advanced checks: email-sleuth ... --enable-headless-checks --webdriver-url http://localhost:9515 (See docs/config for more flags!)
- The Core Library:
- Add email_sleuth_core to your Cargo.toml.
- Use the ConfigBuilder to set up your configuration.
- Call initialize_sleuth(&config).await to get started.
- Use find_single_email(...) or process_contacts(...) for the magic.
電子メールを見つけることは依然として困難なビジネスであり、技術的な調査と教育的な推測の組み合わせです。Email Sleuthは、より多くの科学(そしていくつかの賢いハック)をテーブルに持ち込むことを目指しています。
Check out the project ここ!私たちは、特に実験的なヘッドレスとAPI機能について、フィードバックが大好きです。
ここ