Fixed typo 'marking' instead of 'marketing' in case-insensitive mailbox name list.
When DNS-based deliverability checks fail, in some cases exceptions are now thrown with raise ... from for better nested exception tracking.
Fixed tests to work when no local resolver can be configured.
This project is now licensed under the Unlicense (instead of CC0).
Minor improvements to tests.
Minor improvements to code style.
v2.1.0
2.1.0 (October 22, 2023)
Python 3.8+ is now required (support for Python 3.7 was dropped).
The old email field on the returned ValidatedEmail object, which in the previous version was superseded by normalized, will now raise a deprecation warning if used. See https://stackoverflow.com/q/879173 for strategies to suppress the DeprecationWarning.
A __version__ module attribute is added.
The email address argument to validate_email is now marked as positional-only to better reflect the documented usage using the new Python 3.8 feature.
Fixed typo 'marking' instead of 'marketing' in case-insensitive mailbox name list.
When DNS-based deliverability checks fail, in some cases exceptions are now thrown with raise ... from for better nested exception tracking.
Fixed tests to work when no local resolver can be configured.
This project is now licensed under the Unlicense (instead of CC0).
Minor improvements to tests.
Minor improvements to code style.
2.1.0 (October 22, 2023)
Python 3.8+ is now required (support for Python 3.7 was dropped).
The old email field on the returned ValidatedEmail object, which in the previous version was superseded by normalized, will now raise a deprecation warning if used. See https://stackoverflow.com/q/879173 for strategies to suppress the DeprecationWarning.
A __version__ module attribute is added.
The email address argument to validate_email is now marked as positional-only to better reflect the documented usage using the new Python 3.8 feature.
2.0.0 (April 15, 2023)
This is a major update to the library, but since email address specs haven't changed there should be no significant changes to which email addresses are considered valid or invalid with default options. There are new options for accepting unusual email addresses that were previously always rejected, some changes to how DNS errors are handled, many changes in error message text, and major internal improvements including the addition of type annotations. Python 3.7+ is now required. Details follow:
Python 2.x and 3.x versions through 3.6, and dnspython 1.x, are no longer supported. Python 3.7+ with dnspython 2.x are now required.
The dnspython package is no longer required if DNS checks are not used, although it will install automatically.
NoNameservers and NXDOMAIN DNS errors are now handled differently: NoNameservers no longer fails validation, and NXDOMAIN now skips checking for an A/AAAA fallback and goes straight to failing validation.
Some syntax error messages have changed because they are now checked explicitly rather than as a part of other checks.
The quoted-string local part syntax (e.g. multiple @-signs, spaces, etc. if surrounded by quotes) and domain-literal addresses (e.g. @[192.XXX...] or @[IPv6:...]) are now parsed but not considered valid by default. Better error messages are now given for these addresses since it can be confusing for a technically valid address to be rejected, and new allow_quoted_local and allow_domain_literal options are added to allow these addresses if you really need them.
Some other error messages have changed to not repeat the email address in the error message.
The email field on the returned ValidatedEmail object has been renamed to normalized to be clearer about its importance, but access via .email is also still supported.
Some mailbox names like postmaster are now normalized to lowercase per RFC 2142.
The library has been reorganized internally into smaller modules.
The tests have been reorganized and expanded. Deliverability tests now mostly use captured DNS responses so they can be run off-line.
The main tool now reads options to validate_email from environment variables.
Type annotations have been added to the exported methods and the ValidatedEmail class and some internal methods.
The old dict-like pattern for the return value of validate_email is deprecated.
Versions 2.0.0.post1 and 2.0.0.post2 corrected some packaging issues. 2.0.0.post2 also added a check for an invalid combination of arguments.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps email-validator from 1.3.1 to 2.1.1.
Release notes
Sourced from email-validator's releases.
Changelog
Sourced from email-validator's changelog.
Commits
676e0ab
Version 2.1.119c4d34
Add tests that quoted local parts are unquoted in the returned normalized add...306948d
Disable tests that (still) require Internet access in the default build in th...fd7ed97
In tests, don't configure the dns.resolver.Resolver when using mocked DNS dataa584257
Improvements for more PEP compliance (duplicate imports, raise from, else's) ...5d72f53
Relicense under the Unlicense (instead of CC0)97c26c7
Fix typo in README.md (#124)8aa9223
Improve code coverage with a domain that returns NOANSWER instead of NXDOMAIN6e825bf
Update mocked-dns-answers.json and sort answers for stable diffs going forwardb32933d
Improve some code commentsDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show