Skip to content

Latest commit

 

History

History
112 lines (77 loc) · 3.52 KB

CHANGELOG.md

File metadata and controls

112 lines (77 loc) · 3.52 KB

Change Log

Unreleased

Added

  • New slimta.util functions for limiting outbound connections to IPv4.

Changed

  • The tls option to many different class constructors now defaults (with None) to enabling TLS with no custom configuration. It can be given explicitly False to disable TLS.

Fixed

  • Fixed a possible race condition on enqueue.

3.2 - 2016-05-16

Added

  • The parseline function is now exposed and documented.
  • The slimta.logging.log_exception function may now be replaced with custom functions, for special error handling scenarios.

Changed

  • Unit tests are now run with py.test instead of nosetests.
  • 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.gaierror failures are now caught and ignored during PTR lookup.

Fixed

  • Correctly set an empty greenlet pool in EdgeServer constructor.
  • Corrected a potential duplicate relay scenario in Queue.
  • Reply encoding and decoding now works correctly in Python 2.x.
  • Fixed httplib imports in Python 3.3.

3.1 - 2016-02-04

Added

  • QueueError objects may now set the reply attribute to tell edge services what happened.
  • SMTP servers now advertize SMTPUTF8 and 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 451 codes when a QueueError occurs, rather than 550.
  • The Bounce class header and footer templates may now be bytestrings.
  • Envelope.flatten now returns bytestrings on Python 3, to avoid unnecessary encoding and decoding of message data.

Fixed

  • Correctly throws PermanentRelayError instead of ZeroDivisionError for SMTP MX relays when DNS returns no results.

3.0 - 2015-12-19

Added

  • Compatibility with Python 3.3+.
  • Proxy protocol version 1 support on edge services.
  • Dependence on pycares for DNS resolution.
  • Support for the socket_creator option to control how sockets are created during SMTP relaying.
  • Support for ehlo_as functions to allow custom EHLO logic on each delivery attempt.
  • Support for a new handle_queued callback 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 221 or 421 in an SMTP edge session will now result in the connection closing.