Releases: cole/aiosmtplib
v3.0.2
v3.0.1
- Bugfix: 'Future exception was never retrieved' warning in SMTPProtocol after successful connection close and garbage collection.
- Cleanup: Updated FlowControlMixin logic from stdlib
Full Changelog: v3.0.0...v3.0.1
3.0.0
- BREAKING: Drop Python 3.7 support.
- BREAKING: Positional arguments are now positional only, and keyword arguments
are keyword only. - BREAKING: Passing
source_address
as a string argument (deprecated in 2.0) is now an error.source_address
takes a (addr, port) tuple that is used as thelocal_addr
param ofasyncio.create_connection
, allowing for binding to a specific IP. Thelocal_hostname
argument takes the value to be sent to the server with the EHLO/HELO message (which is whatsource_address
was used for prior to 2.0). - Change: don't use timeout value passed to
connect
everywhere, only for the initial connection (credit @wombatonfire) - Change: removed unnecessary connection lost callback
- Change: revised handling for 'Future exception was never retrieved' warnings in protocol
v2.0.2
- Bugfix: don't send extra EHLO/HELO before QUIT (credit @ikrivosheev)
- Change: added SMTPConnectionResponseError for invalid response on connect only (credit @ikrivosheev)
2.0.1
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)
v1.1.7
What's Changed
-
Security: Fix a possible injection vulnerability (a variant of
https://consensys.net/diligence/vulnerabilities/python-smtplib-multiple-crlf-injection/)Note that in order to exploit this vulnerability in aiosmtplib, the attacker would need
control of thehostname
orsource_address
parameters. Thanks Sam Sanoop @ Snyk
for bringing this to my attention. -
Bugfix: include CHANGLOG in sdist release
-
Type hints: fix type hints for async context exit (credit @JelleZijlstra)
Full Changelog: v1.1.6...v1.1.7