2013-11-22 2 views
1

나는 라인 메신저mimetools.Message() 파이썬 3 email.message.Message

from mimetools import Message 
... 
headers = Message(StringIO(data.split('\r\n', 1)[1])) 

내가 mimetools 것을 알아 낸되어 함께 struggeling 포트에 파이썬 3 에 파이썬 2.x에서 코드를 시도 파이썬 3에는 더 이상 존재하지 않으며 대체물은 이메일 클래스입니다.

headers = email.message_from_file(io.StringIO(data.split('\r\n', 1)[1])) 

을하지만 그와 나는이 오류를 얻을 : 나는 이런 식으로 그것을 대체 밖으로 시도 내가 올바른 이메일 mimetools에서이 이식을 할 수있는 힌트를 찾고 있어요

headers = email.message_from_file(io.StringIO(data.split('\r\n', 1)[1])) 
TypeError: Type str doesn't support the buffer API 

합니다. 원본 코드가 나와 다른 사람이 아닙니다. 그것은 여기에서 찾을 수 있습니다 : https://gist.github.com/jkp/3136208

+1

.. 수입 이메일 ... 스트림 = io.StringIO() rxString = data.decode ("utf-8") split ('\ r \ n', 1) [1] stream.write (rxString) headers = email.message_from_string (rxString) – Alex

답변

2

그의 주석에서 알렉스의 자신의 솔루션 : 해결

import email 
stream = io.StringIO() 
rxString = data.decode("utf-8").split('\r\n', 1)[1] 
stream.write(rxString) 
headers = email.message_from_string(rxString)