2017-09-21 11 views
0

내받은 편지함에서 이메일을 검색하기 위해 Gmail의 API를 사용하고 있습니다 :파이썬의 Gmail API 광고 Base64로 디코딩 이상한 숯을 이메일 본문에

query = 'to:me after:{}'.format(weekStartDate) 

unreadEmailsQuery = service.users().messages().list(userId='me', q=query).execute() 

# For Each Email 
for message in unreadEmailsQuery['messages']: 
    result = service.users().messages().get(id=message['id'],userId='me').execute() 
    email_content = '' 

    if 'data' in result['payload']['body'].keys(): 
     email_content+= result['payload']['body']['data'] 
    else: 

     for part in result['payload']['parts']: 
      email_content = part['body']['data'] + email_content 



    test = bytes(str(email_content),encoding='utf-8') 
    print(base64.decodebytes(test)) 
제대로

인쇄 밖으로 간단한 일반 텍스트 메시지 :

b'Got another one with me

을 이 같은

그러나 출력합니다 HTML 메시지 :

b'<body\x03B\x83B\x83B\x83B\x88\x08\x0f\x1bY]\x18H\x1a\x1d\x1d\x1c\x0bY\\]Z]\x8fH\x90\xdb\ 

내가 할 수있는 문자열이 처음부터 잘못 인쇄 될 때까지는 괜찮은지 확인하고 이유는 모르겠습니다.

나는 분류자를 훈련시킬 수 있도록 내 이메일에서 단어를 추출하려고하지만 막혔습니다.

도움을 주시면 감사하겠습니다.

+0

왜 부결? 제 질문을 어떻게 개선 할 수 있는지 알려주십시오. –

답변

1

URl safe base64 디코딩을 사용해야했습니다.

print(base64.decodebytes(test)) 

에 :

나는 마지막 줄을 변경하여이 작업을 얻을 수 있었다

print(base64.urlsafe_b64decode(thng))