Nếu bạn đang làm bất kỳ loại bán hàng B2B, tiếp thị, tuyển dụng, hoặc thậm chí chỉ là một mạng lưới nghiêm túc, việc tìm đúng địa chỉ email chuyên nghiệp là rất quan trọng.đắtTrả hàng trăm hoặc hàng ngàn mỗi năm chỉ để xác minh thông tin liên lạc có thể cảm thấy như một cái ác cần thiết, đặc biệt là đối với các công ty khởi nghiệp hoặc các nhóm nhỏ hơn.
Sự sốc của nhãn dán, kết hợp với tình yêu của Rust và một thách thức kỹ thuật tốt, chính xác là lý do tại saoEmail SleuthĐó là nỗ lực nguồn mở của chúng tôi để xây dựng một nền tảng mạnh mẽ,Chi phí hiệu quảThay thế để khám phá và xác minh email chuyên nghiệp. quên giấy phép mỗi chỗ và giới hạn tín dụng; đây là về việc lấy lại quyền kiểm soát.
Làm thế nào nó hoạt động? nhiều hơn chỉ là mô hình
Ở cốt lõi của nó, Email Sleuth thông minh hơn là chỉ phun ra một danh sách các mô hình phổ biến (mặc dù nó cũng làm điều đó!).
- Smart Pattern Generation: Nó bắt đầu bằng cách tạo ra một danh sách toàn diện các định dạng email có thể dựa trên tên đầu tiên và cuối cùng (john.doe, jdoe, johnd, doe.j, v.v.) kết hợp với miền mục tiêu.
- 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): Đối với các tài khoản Microsoft 365, chúng tôi có một thủ thuật khác. Chúng tôi dự đoán URL OneDrive for Business của người dùng và gửi một kiểm tra nhanh (một yêu cầu HEAD). Dựa trên mã trạng thái HTTP được trả về (như một 403 Forbidden thường có nghĩa là "có" so với 404 Not Found), chúng tôi có thể đưa ra một phỏng đoán có kiến thức.
- Nhận thức về nhà cung cấp: Email Sleuth cố gắng xác định nhà cung cấp email (Gmail, Microsoft 365, Yahoo, v.v.) dựa trên hồ sơ máy chủ email của tên miền. Điều này giúp nó chọn chiến lược xác minh tốt nhất.
- Điểm tin cậy: Mỗi bằng chứng (mô hình phù hợp, kết quả SMTP, kết quả kiểm tra không có đầu, gợi ý API) góp phần vào điểm tin cậy (0-10) cho mỗi email tiềm năng. Email Sleuth sau đó xếp hạng các ứng cử viên và chọn người có khả năng nhất đáp ứng các ngưỡng có thể cấu hình.
Được xây dựng với rắn, được thiết kế cho hiệu quả
Tại sao Rust? Tốc độ, bảo mật và hỗ trợ concurrency tuyệt vời (tokio) là hoàn hảo cho loại nhiệm vụ kết nối mạng này. Chúng tôi có thể chạy nhiều kiểm tra cùng một lúc, xử lý thời gian thời gian một cách lịch sự và quản lý tài nguyên một cách hiệu quả. Crates chính cung cấp năng lượng cho lõi bao gồm reqwest (HTTP), trust-dns-resolver (DNS), lettre (SMTP), fantoccini (không có đầu), serde/toml (dữ liệu) và clap (cho CLI).
Gần đây, chúng tôi đã thực hiện một refactor lớn, chia logic thành một thư viện cốt lõi (email-sleuth-core) và một công cụ CLI riêng biệt. Điều này làm cho logic cốt lõi có thể tái sử dụng trong các dự án Rust khác và giữ cho cơ sở mã sạch hơn và dễ duy trì hơn khi chúng tôi thêm voodoo xác minh.
Lời bài hát: Give It A Whirl
Bạn có thể sử dụng Email Sleuth theo hai cách:
- 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.
Tìm kiếm email vẫn là một doanh nghiệp phức tạp, một sự pha trộn của các cuộc điều tra kỹ thuật và đoán được giáo dục. Email Sleuth nhằm mục đích mang lại nhiều khoa học hơn (và một số hacks thông minh) lên bàn.
Check out the project Ở đây!Chúng tôi sẽ thích phản hồi, đặc biệt là về các tính năng không đầu và API thử nghiệm. Hãy làm cho việc tìm kiếm các email đó ít đau đớn hơn một chút!
Ở đây