Issue 6897: imaplib fails during login (original) (raw)

Getting the following issue- this code:

#! /usr/bin/env python3

import getpass, imaplib

M = imaplib.IMAP4_SSL("imap.gmail.com") M.login(, ) M.select() typ, data = M.search(None, 'ALL') for num in data[0].split(): typ, data = M.fetch(num, '(RFC822)') print('Message %s\n%s\n' % (num, data[0][1])) M.close() M.logout()

taken almost verbatim from the documentation, produces this error:

Traceback (most recent call last): File "./imaptest.py", line 6, in M.login(, ) File "/usr/lib/python3.0/imaplib.py", line 514, in login typ, dat = self._simple_command('LOGIN', user, self._quote(password)) File "/usr/lib/python3.0/imaplib.py", line 1072, in _quote arg = arg.replace(b'\', b'\\') TypeError: Can't convert 'bytes' object to str implicitly

username and password obviously redeacted.

Changing imaplib.py's _quote function to this:

def _quote(self, arg):

    arg = arg.replace('\\', '\\\\')
    arg = arg.replace('"', '\\"')

    return '"' + arg + '"'

seems to resolve the issue.