This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: imaplib can't process lines after starttls
Type: behavior Stage: resolved
Components: Versions: Python 3.4
process
Status: closed Resolution: not a bug
Dependencies: Superseder:
Assigned To: Nosy List: David Wahlund
Priority: normal Keywords:

Created on 2015-12-08 19:51 by David Wahlund, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Messages (2)
msg256124 - (view) Author: David Wahlund (David Wahlund) Date: 2015-12-08 19:51
File "C:\Python34\lib\imaplib.py", line 536, in login
    typ, dat = self._simple_command('LOGIN', user, self._quote(password))
  File "C:\Python34\lib\imaplib.py", line 1141, in _simple_command
    return self._command_complete(name, self._command(name, *args))
  File "C:\Python34\lib\imaplib.py", line 956, in _command_complete
    typ, data = self._get_tagged_response(tag)
  File "C:\Python34\lib\imaplib.py", line 1076, in _get_tagged_response
    self._get_response()
  File "C:\Python34\lib\imaplib.py", line 984, in _get_response
    resp = self._get_line()
  File "C:\Python34\lib\imaplib.py", line 1098, in _get_line
    if not line.endswith(b'\r\n'):
TypeError: endswith first arg must be str or a tuple of str, not bytes

imaplib uses SSLContext to initiate a SSLSocket. It overrides makefile() from Socket. It in turn uses TextIOWrapper on top of the stream. TextIOWrapper.readline() returns an Unicode str but IMAP4._get_line() expects bytes.
msg256125 - (view) Author: David Wahlund (David Wahlund) Date: 2015-12-08 20:03
Sorry, my bad... Using ImapClient that changed the socket to str.
History
Date User Action Args
2022-04-11 14:58:24adminsetgithub: 70012
2015-12-08 20:05:49zach.waresettype: crash -> behavior
stage: resolved
2015-12-08 20:03:17David Wahlundsetstatus: open -> closed
resolution: not a bug
messages: + msg256125
2015-12-08 19:51:35David Wahlundcreate