All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
0.9.1 (2023-10-08)
- #289: add haveibeenpwned check (#1253) (166dbd2), closes #289
- add email address normalisation (#1206) (f8ec348), closes #952
- add Microsoft 365 HTTP API validation (#1194) (5d3c49f), closes #937
- Add skipped domains (#1293) (29119fa)
- Add suggestions for syntax errors (#1192) (2d385f3)
- additional Gmail validation (#1193) (49c8f5c), closes #937
- backend: Add header secret to protect against public requests (#1158) (fa6a56b)
- core: Add check for antispam MX records (#1257) (c9771da)
- core: Add check gravatar image (#1188) (6a26035)
- core: Add Hotmail checks via headless password recovery (#1165) (7517ed9)
- core: Fix disabled accts on hanmail.net (#1339) (90393c8)
- core: Skip catch-all for known domains (#1336) (c40a46c)
- core: Update default MAIL-FROM and HELO (743a811)
- Set default timeout to 10s (#1251) (d04f84c)
- backend: Fix CI priting (748940c)
- backend: Fix deploy to docker (20fcfa6)
- backend: Fix dockerfile (f0ed49f)
- backend: Improve sentry error messages (#1155) (d90d998)
- backend: Redact email in sentry bug tracking (2c2d1d8)
- cli: Update flags default values (a4fe57e)
- core: Add more invalid parsing and improve logging (#1156) (b5ae9f8)
- core: Default SMTP timeout to 15 (0d4fa4d)
- core: Don't use headless on Microsoft 465 addresses (#1196) (0c3c21d)
- core: Fix default CheckEmailInput (09215a1)
- core: Fix hotmail headless option parsing (6ddc3b9)
- core: Fix hotmail headless with authenticator (51cdb2e)
- core: Fix MX random record selection (#1263) (9fae593)
- core: Improve invalid parser (#1166) (bb46004)
- core: Improve parser and headless hotmail runner (#1167) (0de33a5)
- core: Improve parser from Sentry errors (fbaf588)
- core: Improve parser's
is_invalid
(#1159) (ec1c4d5) - core: No sandbox in headless Hotmail check (0590438)
- core: Remove antispam check (#1337) (06f18ed)
- core: Yahoo add back IDENTIFIER_EXISTS (2b63556)
- core: yahoo api changes: yid is userId now, sessionIndex is required and fo… (#1314) (0209111)
- Don't auto-fetch Chrome, install in Docker (84fcc0d)
- split Microsoft 365/Hotmail functionality (#1204) (e987b13)
- Switch back to upstream fast-socks (#1164) (db356f1)
- TLS accept unsafe (778692b)
- Use chromedriver instead of gecko for parallel requests (e282e28)
0.9.0 (2022-08-15)
- The
RUST_LOG
target has been changed fromcheck-if-email-exists
toreacher
.
- RUST_LOG=check-if-email-exists=debug cargo run
- RUST_LOG=reacher=debug cargo run
- The library's main function
check_email
's argumentCheckEmailInput
nows takes a singleto_email
field, instead of ato_emails: Vec<String>
pub struct CheckEmailInput {
- pub to_emails: Vec<String>,
+ pub to_email: String,
// --snip--
}
- The
--http
flag has been removed fromcheck-if-email-exists
CLI. To run a HTTP backend, please refer to the backend subfolder.
0.8.32 (2022-08-13)
0.8.31 (2022-08-10)
0.8.30 (2022-06-02)
- Fix
has_full_inbox
check too lenient (93de444)
0.8.29 (2022-03-02)
0.8.28 (2022-02-11)
0.8.27 (2022-02-07)
- Allow user to define SMTP client security for TLS (#1043) (bc722ff)
- Break SmtpError into
{Helo,Connect,ConnectWithStream,MailFrom,RcptTo,Close}Error
(#1055) (64e5193)
0.8.26 (2022-01-26)
0.8.25 (2021-10-05)
- Use async_std_resolver::resolver_from_system_conf (#982) (376c3b0)
- Use TLS when available (#964) (aed11d2)
0.8.24 (2021-07-03)
- Add
CheckEmailInput
setterset_
prefix to differentiate with accessing fields (#933) (276f656) - Add deprecated warning when running HTTP server (#943) (e4b1570)
0.8.23 (2021-06-20)
0.8.22 (2021-03-31)
This is an empty release just to re-run the CI process for building binaries.
0.8.21 (2021-03-31)
This is an empty release just to re-run the CI process for building binaries.
0.8.20 (2021-03-30)
- This release only bumps versions of dependencies, and does not introduce any bugfix or improvements.
0.8.19 (2021-01-10)
0.8.18 (2021-01-07)
0.8.17 (2021-01-05)
0.8.16 (2020-12-07)
0.8.15 (2020-11-11)
- Don't check inputted email if catch-all (#714) (5129dd1)
- Fix 'reached the type-length limit while instantiating' (#665) (fa040fd)
0.8.14 (2020-09-24)
0.8.13 (2020-08-04)
0.8.12 (2020-08-04)
- Add "recipient address accepted" check (#489) (5d1e72a)
- http request body to use
to_emails
(#502) (36aed56)
0.8.11 (2020-07-11)
- Add "Invalid email address" check (#471) (3b03617)
- Add possibility to use proxy in Yahoo API request (#472) (aafcedf)
0.8.10 (2020-07-04)
0.8.9 (2020-07-04)
0.8.8 (2020-06-28)
- Add debug logs for Yahoo (e534670)
0.8.7 (2020-06-28)
0.8.6 (2020-06-28)
- Add additional error check for undeliverable (#374) (e52a8f0)
- Use HTTP requests to verify Yahoo emails (#412) (5fad57d)
0.8.5 (2020-05-21)
0.8.4 (2020-05-19)
0.8.3 (2020-05-12)
0.8.2 (2020-05-12)
- Add "Unknown user" smtp error check (#347) (47eb578)
- Add more error strings matching (#323) (f5392d4)
0.8.1 (2020-05-09)
0.8.0 (2020-05-08)
- This new version includes an overhaul of the codebase, mainly to prepare the groundwork for the upcoming work on bulk validation. These changes include:
- The main function
email_exists
has been renamed tocheck_email
:
- email_exists(&input).await;
+ check_email(&input).await;
-
The input
EmailInput
has been renamed toCheckEmailInput
. Its::new()
method, instead of taking a singleString
, now takesVec<String>
. -
The output
SingleEmail
has been renamed toCheckEmailOutput
. The main functioncheck_emails
now returns aVec<CheckEmailOutput>
.
pub async fn check_email(inputs: &CheckEmailInput) -> Vec<CheckEmailOutput>
-
The
syntax
field inCheckEmailOutput
is no longer aResult<SyntaxDetails, SyntaxError>
, but onlySyntaxDetails
. Error cases are guaranteed not to happen for syntax validation. -
The
misc
,mx
, andsmtp
fields' signatures stay the same:Result<{Misc,Mx,Smtp}Details, {Misc,Mx,Smtp}Error>
. However, theResult
is anErr
only when an internal error arrives. In case of errors due to user input (e.g. incorrect email inputted), theDefault
trait has been implemented on{Misc,Mx,Smtp}Details
and will be returned. As such, theSkipped
variant of error enums has been removed.
{
"input": "foo@bar.baz",
"mx": {
- "error": { "cannot resolve" }
+ "accepts_mail": false, // This is Default
+ "records": [] // This is Default
}
- The
misc
,mx
,smtp
,syntax
modules have been made private.
- The field
syntax.valid_format
has been renamed tosyntax.is_valid_syntax
.
0.7.1 (2020-04-14)
0.7.0 (2020-03-26)
email_exists
only takes one input now, anEmailInput
which is built using the builder pattern.
- use check_if_email_exists::email_exists;
+ use check_if_email_exists::{email_exists, EmailInput};
- email_exists("someone@gmail.com", "user@example.org");
+ email_exists(
+ EmailInput::new("someone@gmail.com".to_string()).from_email("user@example.org".to_string())
+ )
EmailInput
additionally takes a hello_name()
method, which is used to set the name in the EHLO smtp command.
--from
in CLI has been replaced with --from-email
.
0.6.7 (2020-03-20)
0.6.6 (2020-03-01)
0.6.1 (2020-02-18)
0.6.0 (2019-12-01)
-
- The
is_disposable
subfield has been moved from themx
field to a separatemisc
field
- The
- Add a HTTP server behind the
--http
flag (#85) (d8b733e) - Add Dockerfile &
x86_64-unknown-linux-musl
target (#86) (cba1241)
0.5.0 (2019-11-16)
-
- The main function
email_exists
now returns a Future:
- The main function
pub async fn email_exists(to_email: &str, from_email: &str) -> SingleEmail {}
- The
SmtpError::SmtpError
has been renamed toSmtpError::LettreError
to show the underlying error more correctly (i.e., coming fromlettre
crate). - The
BlockedByISP
error has been removed. Instead, you'll see e.g."connection refused"
, or whatever is returned by the SMTP server:
{
// ...,
"smtp": {
"error": {
"type": "LettreError",
"message": "connection refused"
}
},
}
0.4.0 (2019-09-30)
- the
smtp
's object keys have changed. Instead of
{
"deliverable": ...,
"full_inbox": ...,
"has_catch_all": ...
}
it now returns
{
"has_full_inbox": ...,
"is_deliverable": ...,
"is_disabled": ...,
"is_catch_all": ...
}
where is_disabled
checks if the address has been disabled/blocked by the email provider
0.3.2 (2019-09-26)
0.3.1 (2019-09-26)
0.3.0 (2019-09-26)
- New error JSON format (#56) (fec4315)
- Output JSON information with CLI (#53) (1d026d5)
- Return Result instead of Result, with much more details (#23) (39b13f5)
0.2.3 (2019-05-09)
- Update version to correct version in cli (992777c)
0.2.2 (2019-05-09)
- Fix travis and appveyor to build binaries (f743e67)