Skip to content

Releases: JoshData/python-email-validator

2.2.0 (June 20, 2024)

20 Jun 11:31
Compare
Choose a tag to compare
  • Email addresses with internationalized local parts could, with rare Unicode characters, be returned as valid but actually be invalid in their normalized form (returned in the normalized field). Local parts now re-validated after Unicode NFC normalization to ensure that invalid characters cannot be injected into the normalized address and that characters with length-increasing NFC normalizations cannot cause a local part to exceed the maximum length after normalization.
  • The length check for email addresses with internationalized local parts is now also applied to the original address string prior to Unicode NFC normalization, which may be longer and could exceed the maximum email address length, to protect callers who do not use the returned normalized address.
  • Improved error message for IDNA domains that are too long or have invalid characters after Unicode normalization.
  • A new option to parse My Name <address@domain> strings, i.e. a display name plus an email address in angle brackets, is now available. It is off by default.
  • Improvements to Python typing.
  • Some additional tests added.

v2.1.2

17 Jun 01:20
Compare
Choose a tag to compare

2.1.2 (June 16, 2024)

  • The domain name length limit is corrected from 255 to 253 IDNA ASCII characters. I misread the RFCs.
  • When a domain name has no MX record but does have an A or AAAA record, if none of the IP addresses in the response are globally reachable (i.e. not Private-Use, Loopback, etc.), the response is treated as if there was no A/AAAA response and the email address will fail the deliverability check.
  • When a domain name has no MX record but does have an A or AAAA record, the mx field in the object returned by validate_email incorrectly held the IP addresses rather than the domain itself.
  • Fixes in tests.

v2.1.1 (February 26, 2024)

26 Feb 22:04
Compare
Choose a tag to compare
  • 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

22 Oct 11:31
Compare
Choose a tag to compare

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.

v2.0.0

16 Apr 01:27
Compare
Choose a tag to compare
2.0.0.post2

v1.3.1

21 Jan 10:43
Compare
Choose a tag to compare

Version 1.3.1 (January 21, 2023)

  • The new SPF 'v=spf1 -all' (reject-all) deliverability check is removed in most cases. It now is performed only for domains that do not have MX records but do have an A/AAAA fallback record.

v1.3.0

18 Sep 19:31
Compare
Choose a tag to compare

Version 1.3.0 (September 18, 2022)

  • Deliverability checks now check for 'v=spf1 -all' SPF records as a way to reject more bad domains.
  • Special use domain names now raise EmailSyntaxError instead of EmailUndeliverableError since they are performed even if check_deliverability is off.
  • New module-level attributes are added to override the default values of the keyword arguments and the special-use domains list.
  • The keyword arguments of the public methods are now marked as keyword-only.
  • pyIsEmail's test cases are added to the tests.
  • Recommend that check_deliverability be set to False for validation on login pages.
  • Added an undocumented globally_deliverable option.

v1.2.1

01 May 22:20
Compare
Choose a tag to compare

Changes in version 1.2.0:

  • Rejecting domains with NULL MX records (when deliverability checks are turned on).
  • Rejecting unsafe unicode characters. (Some of these checks you should be doing on all of your user inputs already!)
  • Rejecting most special-use reserved domain names. A new test_environment option is added for using @*.test domains.
  • Some fixes in the tests.

In version 1.2.1:

  • example and example.com/net/org are removed from the special-use domains list.
  • SPECIAL_USE_DOMAIN_NAMES is now a documented part of the API (and it is a list instead of a tuple)
  • New module-level attributes ALLOW_SMTPUTF8, CHECK_DELIVERABILITY, TEST_ENVIRONMENT, and DEFAULT_TIMEOUT can be used to change the default values of the keyword arguments.
  • Travis CI is updated to test from Python 3.6 forward, dropping 3.5.

v1.1.3

24 Apr 17:35
Compare
Choose a tag to compare
1.1.3

v1.1.2

24 Apr 17:35
Compare
Choose a tag to compare
Version 1.1.2