py3-validate-email/CHANGELOG.txt

138 lines
5.2 KiB
Text

1.0.2:
- Handle an SSLError during STARTTLS correctly (See https://github.com/karolyi/py3-validate-email/issues/79)
- Extend options with an `smtp_skip_tls` option. When `True`, the module won't initiate a TLS session. Defaults to `False`.
- Extend options with a `smtp_tls_context` option. When passed and `smtp_skip_tls` is `False` (or not passed), the client will use the passed `SSLContext`.
- Typo fix: 'ambigious' -> 'ambiguous'
1.0.1:
- Fix dnspython dependency
1.0.0:
- New major release with breaking changes! They are:
- Parameter names for validate_email() and validate_email_or_fail() have changed:
- check_regex -> check_format
- use_blacklist -> check_blacklist
- check_mx -> check_dns
- skip_smtp -> check_smtp (with inverted logic)
- helo_host -> smtp_helo_host
- from_address -> smtp_from_address
- debug -> smtp_debug
- All parameters except for the first one (the email address to check) are now keyword-only.
- Ambiguous results and the possibility of more of them, to reflect a real world SMTP delivery process:
- The module tries all MX hosts in order of priority.
- An acceptance of the email address will yield a positive verification result, no further MX hosts will be tried.
- Any permanent SMTP error (5xx) will yield a negative verification result, no further MX hosts will be tried.
- Any temporary SMTP error (4xx) or any connection issue will cause the next MX host to be tried. Only if all MX hosts yield these kinds of errors, the overall verification result will be ambiguous. That is, greylisting or no servers providing a definitive negative or positive.
- The validate_email_or_fail() function will now raise an SMTPTemporaryError() on an ambiguous result.
- All exceptions raised by the SMTP check will contain the occurred communication results in their error_messages class variables.
- Internal API changes (refactorings)
- Check results are now logged with info level, instead of emitting warnings when debug is turned on.
- Props to @reinhard-mueller for coming up with the new proposals and helping in refining the idea.
0.2.16:
- Workaround for a bug in the built-in python 3.8 smtp library: https://github.com/karolyi/py3-validate-email/issues/50
0.2.15:
- Added a `skip_smtp` option to optionally skip the SMTP protocol check after the DNS level checks, by @SergeyKons
0.2.14:
- More improvements, courtesy of Reinhard Müller: https://github.com/karolyi/py3-validate-email/pull/48
0.2.13:
- Fix 5xx errors not getting through in the exception parameters on the RCPT TO
handling. (#45)
0.2.12:
- Fixed a TLS error where the MX hostname mismatched the actual hostname due
to MX records resolving to hostnames with dots at the end. Yahoo lookups
resulted in SSL errors, providing false negatives.
0.2.11:
- Make emitting logs off per default, observer the passed `debug` parameter
- Set updater log level to debug
0.2.10:
- Adding STARTTLS handling
- Use EHLO instead of HELO
- Refactorings to handle errors during EHLO and MAIL FROM commands
- Updated dependencies
0.2.9:
- Adding debug command to validate_email for debugging
0.2.8:
- Fixing windows installation error.
0.2.7:
- Increase consistency at handling domain literals
- Clean up initial blacklist download on install
- All improvements made by @reinhard-mueller.
0.2.6:
- Introducing an EmailAddress class, thx to @reinhard-mueller
- Added a test for making sure there's a data directory with blacklist
files on install.
0.2.5:
- Python distutils/setuptools is a mess. Fix data dir creation on
install.
0.2.4:
- Fixed built-in datadir creation again.
0.2.3:
- Fixed https://github.com/karolyi/py3-validate-email/issues/13
0.2.2:
- Fixed the automatic download of the validate_email/data directory on
package install time. The source distribution MUST NOT include the
data directory, local installs have to fetch them when they are
executed.
0.2.1:
- Added a validate_email_or_fail function that will raise an exception
(base class validate_email.exceptions.EmailValidationError) when the
passed email check fails, while logging a warning with the validation
result.
- The blacklist updater can now use a separate thread and writable temp
paths to download and store its data, while logs about the update
process on DEBUG.
- Exposed a `validate_email.updater.update_builtin_blacklist` to update
the built-in blacklists while running.
0.2.0:
- Added automatic auto-updater for updating built-in blacklists.
0.1.12:
- Blacklist/whitelist domains checking is now independent of regex checking.
0.1.11:
- Handling IDNA errors
0.1.10:
- Handling the NoNameservers exception
0.1.9:
- Handling DNS timeout + YXDOMAIN
0.1.8:
- Added IDNA domain handling. (might need adjustment when
https://bugs.python.org/issue20083 gets fixed)
0.1.7:
- Handle the SMTPServerDisconnected exception throughout all the SMTP
connection. Try to contact all MXes for a successful probe.
0.1.6:
- Fixed a rare case where aol.co returns '.' in MX that causes an
exception for the SMTP module, with added tests.
0.1.5:
- Handle socket errors (https://docs.python.org/3/library/
socket.html#exceptions)
0.1.4:
- Handle 'No MX record' exception
0.1.3:
- Added ambiguous (4xx) response code handling