0
imaplib를 사용하여 메일 서버에 연결하려고합니다. 암호를 일반 문자열로 포함하면 '암호' 잘 연결됩니다. 하지만, 약간 비밀번호를 당황하게하기 위해 노력하고있어 그래서 나는 이전에 b64encode를 통해 실행 한 후 로그인에 b64decode을 사용 :Py3.4 IMAPLib 로그인 ... 'str'이 버퍼 인터페이스를 지원하지 않습니다.
#Works:
mail.login('myloginname', 'myPassword')
#Doesn't Work:
mail.login('myloginname', base64.b64decode('Ja3rHsnakhdgkhervc'))
# or
mail.login('myloginname', bytes(base64.b64decode('Ja3rHsnakhdgkhervc')))
...
Traceback (most recent call last):
File "./testing.py", line 15, in <module>
mail.login('myloginname', bytes(base64.b64decode('Ja3rHsnakhdgkhervc')))
File "/usr/local/lib/python3.4/imaplib.py", line 536, in login
typ, dat = self._simple_command('LOGIN', user, self._quote(password))
File "/usr/local/lib/python3.4/imaplib.py", line 1125, in _quote
arg = arg.replace('\\', '\\\\')
TypeError: 'str' does not support the buffer interface
제안?
하 :
'\\'
및'\\\\'
이str
객체이기 때문에, 당신은bytes
객체 인args.replace('\\', '\\\\')
만args
때문에 역 추적을 얻을! Py3가 문자열 대신에 바이트를 원한다는 것에 대한 많은 게시물을 읽었을 때, 다른 방향으로 캐스팅하는 것에 대해서 생각조차하지 않았습니다. 완벽하게 일했습니다. 고맙습니다. – wolf2600Python을 처음 사용하면서 오류 메시지를 올바르게 이해하지 못했습니다. 그것이 'str'이 지원하지 않는다고 말했을 때, 문자열을 찾고 있다는 것보다는 문자열을 전달하고있는 것을 보았습니다. – wolf2600