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.
Version 1.2.1 (May 1, 2022)
- example.com/net/org are removed from the special-use reserved domain names list so that they do not raise exceptions if check_deliverability is off.
- Improved README.
Verison 1.2.0 (April 24, 2022)
- Reject domains with NULL MX records (when deliverability checks are turned on).
- Reject unsafe unicode characters. (Some of these checks you should be doing on all of your user inputs already!)
- Reject most special-use reserved domain names with EmailUndeliverableError. A new
test_environmentoption is added for using@*.testdomains. - Improved safety of exception text by not repeating an unsafe input character in the message.
- Minor fixes in tests.
- Invoking the module as a standalone program now caches DNS queries.
- Improved README.
Version 1.1.3 (June 12, 2021)
- Allow passing a custom dns_resolver so that a DNS cache and a custom timeout can be set.
Version 1.1.2 (Nov 5, 2020)
- Fix invoking the module as a standalone program.
- Fix deprecation warning in Python 3.8.
- Code improvements.
- Improved README.
Version 1.1.1 (May 19, 2020)
- Fix exception when DNS queries time-out.
- Improved README.
Version 1.1.0 (Spril 30, 2020)
- The main function now returns an object with attributes rather than a dict with keys, but accessing the object in the old way is still supported.
- Added overall email address length checks.
- Minor tweak to regular expressions.
- Improved error messages.
- Added tests.
- Linted source code files; changed README to Markdown.
Version 1.0.5 (Oct 18, 2019)
- Prevent resolving domain names as if they were not fully qualified using a local search domain settings.
Version 1.0.4 (May 2, 2019)
- Added a timeout argument for DNS queries.
- The wheel distribution is now a universal wheel.
- Improved README.
Version 1.0.3 (Sept 12, 2017)
- Added a wheel distribution for easier installation.
Version 1.0.2 (Dec 30, 2016)
- Fix dnspython package name in Python 3.
- Improved README.
Version 1.0.1 (March 6, 2016)
- Fixed minor errors.
Version 1.0.0 (Sept 5, 2015)
- Fail domains with a leading period.
- Improved error messages.
- Added tests.
Version 0.5.0 (June 15, 2015)
- Use IDNA 2008 instead of IDNA 2003 and use the idna package's UTS46 normalization instead of our own.
- Fixes for Python 2.
- Improved error messages.
- Improved README.
Version 0.1.0 (April 21, 2015)
Initial release!