From 8c740c4d1980d811ff5614fa3b538fce499a725b Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Sun, 29 May 2016 23:43:24 +0300 Subject: Improved docs for issue27033. Based on comments by R. David Murray. --- Doc/library/smtpd.rst | 10 +++++----- Doc/whatsnew/3.6.rst | 8 ++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Doc/library/smtpd.rst b/Doc/library/smtpd.rst index 2466e38..ad6bd3c 100644 --- a/Doc/library/smtpd.rst +++ b/Doc/library/smtpd.rst @@ -52,8 +52,8 @@ SMTPServer Objects cannot be set to ``True`` at the same time. *decode_data* specifies whether the data portion of the SMTP transaction - should be decoded using UTF-8. The default is ``False``. When - *decode_data* is not set to ``True`` the server advertises the ``8BITMIME`` + should be decoded using UTF-8. When *decode_data* is ``False`` (the + default), the server advertises the ``8BITMIME`` extension (:rfc:`6152`), accepts the ``BODY=8BITMIME`` parameter to the ``MAIL`` command, and when present passes it to :meth:`process_message` in the ``kwargs['mail_options']`` list. *decode_data* and *enable_SMTPUTF8* @@ -70,7 +70,7 @@ SMTPServer Objects format). If the *decode_data* constructor keyword is set to ``True``, the *data* - parameter will be a unicode string. If it is set to ``False``, it + argument will be a unicode string. If it is set to ``False``, it will be a bytes object. *kwargs* is a dictionary containing additional information. It is empty @@ -107,8 +107,8 @@ SMTPServer Objects .. versionadded:: 3.5 The *decode_data* and *enable_SMTPUTF8* constructor parameters, and the - *kwargs* parameter to :meth:`process_message` when one or more of these is - specified. + *kwargs* parameter to :meth:`process_message` when *decode_data* is + ``False``. .. versionchanged:: 3.6 *decode_data* is now ``False`` by default. diff --git a/Doc/whatsnew/3.6.rst b/Doc/whatsnew/3.6.rst index 3b1aee4..adbde91 100644 --- a/Doc/whatsnew/3.6.rst +++ b/Doc/whatsnew/3.6.rst @@ -640,6 +640,14 @@ Changes in the Python API an error (e.g. EBADF) was reported by the underlying system call. See :issue:`26685`. +* The *decode_data* argument for :class:`smtpd.SMTPChannel` and + :class:`smtpd.SMTPServer` constructors is now ``False`` by default. + This means that the argument passed to + :meth:`~smtpd.SMTPServer.process_message` is now a bytes object by + default, and ``process_message()`` will be passed keyword arguments. + Code that has already been updated in accordance with the deprecation + warning generated by 3.5 will not be affected. + Changes in the C API -------------------- -- cgit v0.12