Commit Graph
29 Commits
Author SHA1 Message Date
Amaury eed5a1536a feat!: Allow multiple proxies (#1562)
BREAKING CHANGE:

- The `hello_name`, `from_email`, `smtp_timeout`, `retries` and `proxy` settings have been moved to inside the new `verif_method` field, which is now the centralized place to configure how each email is verified (categorized by email provider).
2025-02-11 22:57:21 +01:00
Amaury 14a6759d80 feat: Add misc.is_b2c field (#1553)
* remove lettre

* Add retries

* feat: Add misc.is_b2c

* Fix docker
2024-12-30 12:12:10 +01:00
Amaury b1377db2b3 fix: Improve logging, add retries for Yahoo headless, switch to rustls (#1549)
* first fixes

* Switch some logs

* fix more

* use tracing everywhere

* update deps

* Remove native-tls

* fix bugs

* Add rustls

* Fix tests

* ignoring test
2024-12-20 10:46:58 +01:00
Amaury f75e0c4540 refactor: Remove ReacherConfig, use CheckEmailInput (#1538)
* feat: Remove ReacherConfig, use CheckEmailInput

* Fixed

* Fix request

* fix build

* fic docs

* test

* remove test
2024-11-25 22:31:11 +01:00
Amaury 08522e4326 feat!: Add /v1/{check_email,bulk} endpoints with throttle&concurrency (#1537)
BREAKING CHANGE:

- In `/v0/check_email` endpoint, the `hotmail_verif_method` field has been replaced two fields: `hotmailb2b_verif_method` and `hotmailb2c_verif_method`
- All serializations of `"Smtp","Api","Headless"` have been converted to lowercase `"smtp","api","headless"`
2024-11-25 09:35:37 +01:00
Amaury b97b9ff9b9 fix(core)!: Clean up CheckEmailInput (#1531)
BREAKING CHANGE:

We switched to a more commonly-used builder pattern to create an input:
```diff
- let mut input = CheckEmailInput::new("someone@gmail.com");
- input.set_from_email("me@mycompany.com");

+ let input = CheckEmailInputBuilder::default()
+     .to_email("someone@gmail.com")
+     .from_email("me@mycompany.com")
+     .build()
+     .unwrap();

let res = check_email(input, &config).await;
```
2024-11-10 09:08:16 +01:00
Amaury bcd2dc867b refactor!: Use config-rs instead of env vars (#1530)
BREAKING CHANGE:

The main function, `check_email()`, now takes a second argument called `ReacherConfig`. This struct contains configuration such as the webdriver address to listen to for headless email verifications, or an optional Sentry configuration to send error reports to. Previously, these configurations were passed through poorly-documented environment variables; now we make them explicit. When migration, you can pass `ReacherConfig::default()` which returns sensible default values.
2024-11-10 05:33:12 +01:00
Amaury 9f9607d354 chore!: Rename all VerifyMethod to VerifMethod 2023-12-05 12:05:36 +01:00
Amaury 5ca4dfa5ec refactor!: Use verify method for known providers (#1366)
BREAKING CHANGE: For Hotmail, Gmail and Yahoo addresses, the `*_use_api` and `*_use_headless` parameters have been removed and replaced with a `*VerifyMethod`, an enum which can take value Api, Headless or Smtp. If using headless, pass a webdriver address to env variable RCH_WEBDRIVER_ADDR.
2023-10-25 17:39:35 +02:00
Amaury 6f0f12b8cf feat: Yahoo account recovery via headless (#1364)
BREAKING CHANGE: `input.hotmail_use_headless` is now a bool instead of a string. Pass the webdriver address as an environment variable `RCH_WEBDRIVER_ADDR` now.
2023-10-25 13:05:54 +00:00
Amaury 6fd670d137 chore: Update header date 2023-10-24 18:47:34 +02:00
Sylvain Reynaud 166dbd2cc8 feat(#289): add haveibeenpwned check (#1253) 2023-02-15 23:02:48 +01:00
Amaury 9fae593b85 fix(core): Fix MX random record selection (#1263)
* fix(core): Fix MX random record selection

* fix clippy

* Fix clippy

* Fix clippy

* fix clippy (last?)

* fix clippy
2023-02-03 20:00:19 +01:00
Amaury a4fe57e9ab fix(cli): Update flags default values 2023-01-09 18:34:01 +01:00
Amaury M 51cdb2e3c1 fix(core): Fix hotmail headless with authenticator 2022-11-17 23:50:53 +01:00
Roger G. CoramandAmaury 5d3c49f41e feat: add Microsoft 365 HTTP API validation (#1194)
* feat: add Outlook HTTP API validation

- check the validity of Outlook/Office 365 email addresses via the
  method outlined
  [here](https://www.trustedsec.com/blog/achieving-passive-user-enumeration-with-onedrive/).
- run only via the `--outlook-use-api` flags (defaulting to `false`.)

relates #937

* fix: restrict Office 365 domain

use `.mail.protection.outlook.com.` for domains backed by Outlook/Office
365.

* fix: continue for non-definitive responses from Outlook API

if using `--outlook-use-api`, only return immediately in the event of a
positive response: negative responses are ambiguous and the process
should fall back to subsequent checks.

* fix: amend Outlook references

update references to "Microsoft 365" to make is more explicit that this
pertains to the underlying services, not Outlook addresses.

* fix: continue in the event of a ReqwestError

allow both failures in the HTTP request and 404 responses to continue.

Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com>
2022-10-11 16:13:11 +00:00
Roger G. CoramandPsypherPunk 49c8f5c3b4 feat: additional Gmail validation (#1193)
* feat: additional Gmail validation

- check the validity of `gmail.com`/`googlemail.com` email addresses via
  the method outlined
  [here](https://blog.0day.rocks/abusing-gmail-to-get-previously-unlisted-e-mail-addresses-41544b62b2).
- run only via the `--gmail-use-api`/`gmail_use_api` flags (defaulting
  to `false`.)

relates #937

* refactor: split out HTTP client

move the `create_client` method to a separate file; have the `yahoo` and
`gmail` modules reference this.

* test: add test for Gmail HTTP API

verify Gmail HTTP API behaviour with `someone@gmail.com`, failure
indicating that the API is no longer reliable.

* fix: correct host checks for Gmail HTTP API

should check as per the MX host:

- for gmail.com or googlemail.com, this will look like
  `*.gmail-smtp-in.l.google.com.`.
- for Google Apps/Workspace domains, this will look like
  `*.aspmx.l.google.com.`.

Co-authored-by: PsypherPunk <psypherpunk+github@gmail.com>
2022-10-06 15:54:17 +02:00
Daniel Huth 6a26035327 feat(core): Add check gravatar image (#1188)
* feat(core): Add check gravatar image

* Add missing changes

* Fix compilation

* Fix tests

* Apply PR feedback

* Don't panic
2022-10-04 23:11:21 +02:00
Amaury ce1ba53468 feat: Revert back to check_email input with single email (#1150)
BREAKING CHANGE:

The library's main function `check_email`'s argument `CheckEmailInput` nows takes a single `to_email` field, instead of a `to_emails: Vec<String>`

```diff
pub struct CheckEmailInput {
- pub to_emails: Vec<String>,
+ pub to_email: String,
  // --snip--
}
```

This effectively makes the public API more similar to the v0.7.* series. I'm still thinking about how to best verify multiple emails in one SMTP connection, but it most likely will be a new function with a different API. Follow [issue #65](https://github.com/reacherhq/check-if-email-exists/issues/65) for more info.
2022-08-15 13:04:09 +02:00
Amaury 71843720c9 refactor!: Remove HTTP backend from CLI (#1151)
* refactor!: Remove HTTP backend from CLI

* Remove travis
2022-08-15 12:01:17 +02:00
Amaury 329af49d06 refactor: Move CLI to subfolder (#1137)
* Move CLI to subfolder

* Fix clippy

* 0.8.32

* Fix docs
2022-08-13 22:14:45 +02:00
Amaury Martiny cba124110b feat: Add Dockerfile & x86_64-unknown-linux-musl target (#86)
BREAKING CHANGE:

- The `is_disposable` subfield has been moved from the `mx` field to a separate `misc` field
2019-12-02 00:17:08 +01:00
Amaury Martiny d8b733e5a5 feat: Add a HTTP server behind the --http flag (#85)
* Add hyper

* Make it compile

* Make HTTP work!

* Add `input` field in response

* Fix tests

* Better error management

* Use tabs
2019-12-01 11:51:48 +01:00
Amaury Martiny 618a4c4758 refactor: Use default-run and put binary in cli/ (#81) 2019-11-20 17:53:38 +01:00
Amaury Martiny 6c93893273 fix: Don't use virtual workspace, be able to build (#59)
* fix: Don't use virtual workspace, be able to build

* Update to 0.3.1
2019-09-26 20:19:54 +02:00
Amaury Martiny aad2a0a02d chore(cli): Remove HTTP for now (#57)
* chore: Remove HTTP for now

* Update README
2019-09-26 18:37:29 +02:00
Amaury Martiny c39301bde2 refactor: Use virtual workspace (#54) 2019-09-26 16:53:22 +02:00
Amaury Martiny 9616ef5bcf fix: Refactor app to make travis build binaries (#17)
* Update chamgelog

* Remove workspace

* Bump to 0.2.1
2019-05-09 23:07:56 +02:00
Amaury Martiny 532c4ebcb4 feat: Add serverless function (#15)
* Add serverless

* Make serverless work

* Make code cleaner

* Add --bin
2019-05-09 21:29:32 +02:00