Releases: slimta/python-slimta
Releases · slimta/python-slimta
Version 4.0.0
Issue Tracker
Added
- New
slimta.utilfunctions for limiting outbound connections to IPv4. - New
socket_error_log_levelvariable for better log level control.
Changed
- Constructors and functions that took a
tlsdictionary now take acontext
argument that should be anSSLContextobject. This allows finer
control of encryption behavior, as well as the ability to pre-load sensitive
certificate data before daemonization. - Client connections will now be opportunistic and try to use TLS if it is
available, even if a key or cert have not been configured. - The
AUTHSMTP extension will now advertise insecure authentication
mechanisms without TLS, but trying to use them will fail. - Moved the
slimta.systemmodule toslimta.util.systemto de-clutter the
top-level namespace.
Fixed
- Fixed a possible race condition on enqueue.
- Fixed exception when given empty EHLO/HELO string.
- Fixed the fallback from EHLO to HELO in certain situations.
- The
session.authvariable now correctly contains the tuple described
in the documentation.
Version 3.2.0
Issue Tracker
Added
- The
parselinefunction is now exposed and documented. - The
slimta.logging.log_exceptionfunction may now be replaced with custom
functions, for special error handling scenarios.
Changed
- Unit tests are now run with
py.testinstead ofnosetests. - Exception log lines will now include up to 10,000 characters of the traceback
string. - Socket errors are no longer logged as unhandled errors and do not include a
traceback. socket.gaierrorfailures are now caught and ignored during PTR lookup.
Fixed
- Correctly set an empty greenlet pool in
EdgeServerconstructor. - Corrected a potential duplicate relay scenario in
Queue. Replyencoding and decoding now works correctly in Python 2.x.- Fixed
httplibimports in Python 3.3.
Version 3.1.0
Issue Tracker
Added
QueueErrorobjects may now set thereplyattribute to tell edge services
what happened.- SMTP servers now advertize
SMTPUTF8and clients will now use UTF-8 sender
and recipient addresses when connected to servers that advertize it. - When creating an edge or relay service, now checks for the existence of any
given TLS key or cert files before proceeding. - Support for proxy protocol version 2 and version auto-detection.
Removed
- Dependence on six for Python 2/3 compatibility.
Changed
- The builtin edges now use
451codes when aQueueErroroccurs, rather than
550. - The
Bounceclass header and footer templates may now be bytestrings. Envelope.flattennow returns bytestrings on Python 3, to avoid unnecessary
encoding and decoding of message data.
Fixed
- Correctly throws
PermanentRelayErrorinstead ofZeroDivisionErrorfor
SMTP MX relays when DNS returns no results.
Version 3.0.0
Issue Tracker
Added
- Compatibility with Python 3.3+.
- Proxy protocol version 1 support on edge services.
- Dependence on pycares for DNS resolution.
- Support for the
socket_creatoroption to control how sockets are created
during SMTP relaying. - Support for
ehlo_asfunctions to allow custom EHLO logic on each delivery
attempt. - Support for a new
handle_queuedcallback on SMTP edges, to control the reply
code and message based on queue results.
Removed
- Compatibility with Python 2.6.x.
- Dependence on dnspython for DNS resolution.
Changed
- Relay results that were returned as a list are now returned as a dict, keyed
on the envelope recipients.
Fixed
- During SMTP relaying, timeouts and other errors will more consistently return
the current SMTP command where the error happened. - Setting a reply code to
221or421in an SMTP edge session will now result
in the connection closing.