207 čtení

Nebaví vás platit za e-maily? namísto toho jsme vybudovali rust-powered sleuth (a ano, jsme dostali pushback)

podle 3m2025/05/08
Read on Terminal Reader

Příliš dlouho; Číst

RocketReach, Hunter, Lusha jsou drahé, rychlé, takže jsme vybudovali otevřenou alternativu pro objevování a ověřování profesionálních e-mailů.
featured image - Nebaví vás platit za e-maily? namísto toho jsme vybudovali rust-powered sleuth (a ano, jsme dostali pushback)
undefined HackerNoon profile picture

Pokud děláte jakýkoliv druh B2B prodeje, marketingové propagace, nábor, nebo dokonce jen vážné sítě, najít správnou profesionální e-mailovou adresu je zásadní.drahéPlatit stovky nebo tisíce ročně jen pro ověření kontaktních informací se může zdát jako nutné zlo, zejména pro start-upy nebo menší týmy.


Tento nálepkový šok, spojený s láskou k Rust a dobrou technickou výzvou, je přesně tím, pročEmail SleuthJe to náš pokus otevřeného zdroje vybudovat silný,nákladově efektivníAlternativou k objevování a ověřování profesionálních e-mailů.Zapomeňte na licence na místo a kreditní limity; jde o získání kontroly zpět.

Jak to funguje? více než jen vzory

Ve svém jádru je Email Sleuth chytřejší než jen vyplivnutí seznamu společných vzorů (i když to dělá taky!).


  1. Smart Pattern Generation: Začíná generováním komplexního seznamu pravděpodobných e-mailových formátů založených na prvních a posledních jménech (john.doe, jdoe, johnd, doe.j atd.) v kombinaci s cílovou doménou.
  2. 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.
  3. 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.
  4. API Heuristics (The Educated Guess): Pro účty Microsoft 365 máme další trik. Předpovídáme uživatelovu adresu URL OneDrive for Business a odesíláme rychlou kontrolu (žádost HEAD).Na základě kódů stavu HTTP vrácených (jako například 403 Zakázáno často znamená „existuje“ vs. 404 Nenašel), můžeme udělat vzdělanou domněnku.
  5. Poskytovatel povědomí: Email Sleuth se snaží identifikovat poskytovatele e-mailu (Gmail, Microsoft 365, Yahoo, atd.) na základě záznamů poštovního serveru domény. To mu pomáhá vybrat nejlepší ověřovací strategii.
  6. Hodnocení důvěry: Každý kus důkazů (vzorová shoda, výsledek SMTP, výsledek bezhlavé kontroly, náznak API) přispívá k skóre důvěry (0-10) pro každý potenciální e-mail.

Vyrobeno z nerezu, navrženo pro efektivitu

Proč Rust?Rychlost, bezpečnost a vynikající souběžná podpora (tokio) jsou ideální pro tento typ úkolů spojených s sítí.Můžeme současně spustit více kontrol, chytře zvládnout časové úseky a efektivně spravovat zdroje.Klíčové žehličky napájející jádro zahrnují reqwest (HTTP), trust-dns-resolver (DNS), lettre (SMTP), fantoccini (bez hlavy), serde/toml (data) a clap (pro CLI).


Nedávno jsme podnikli velký refaktor, který rozdělil logiku na základní knihovnu (email-sleuth-core) a samostatný nástroj CLI.

Vezměte si whirl

Email Sleuth můžete použít dvěma způsoby:

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


Hledání e-mailů je stále složité podnikání, směs technického průzkumu a vzdělané hádanky. Email Sleuth si klade za cíl přinést více vědy (a některé chytré hacky) na stůl.


Check out the project zde!Milovali bychom zpětnou vazbu, zejména na experimentální bezhlavé a API funkce.

zde

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks