v2.0.0
-
BREAKING: Drop Python 3.5 and 3.6 support.
-
BREAKING: On connect, if the server supports STARTTLS, automatically try
to upgrade the connection. STARTTLS after connect can be turned on or off
explicitly by passingstart_tls=True
orstart_tls=False
respectively. -
BREAKING: Remove deprecated
loop
keyword argument for the SMTP class. -
Change: The
source_address
argument now takes a (addr, port) tuple that is
passed as thelocal_addr
param toasyncio.create_connection
, allowing
for binding to a specific IP. The newlocal_hostname
argument that takes
the value to be sent to the server with the EHLO/HELO message. This behaviour
more closely matchessmtplib
.In order to not break existing usage, passing a string instead of a tuple to
source_address
will give a DeprecationWarning, and use the value as it if
had been passed forlocal_hostname
.Thanks @rafaelrds and @davidmcnabnz for raising and contributing work on this
issue. -
Bugfix: the
mail_options
andrcpt_options
arguments to thesend
coroutine no longer cause errors -
Cleanup: Refactored
SMTP
parent classes to remove complex inheritance
structure. -
Cleanup: Switched to
asyncio.run
for sync client methods. -
Cleanup: Don't use private email.message.Message policy attribute (instead,
set an appropriate policy based on message class)