저는 smtp에서 전자 메일 목록을 가져와 나중에 그와 관련된 작업을 수행하기 위해 Python imaplib 및 전자 메일 모듈을 사용하고 있습니다. 이것은 내가 이메일 잡고 디코딩하는 데 사용하고 코드 조각입니다 :모바일 장치에서 보낸 전자 메일은 이상하게도 전자 메일 라이브러리를 사용하여 디코딩되었습니다.
import imaplib
import email
# Connect to server
box = imaplib.IMAP4(CSMTP_SERVER)
box.login(CSMTP_USERNAME, CSMTP_PASSWORD)
# List inbox
box.select('INBOX')
# Retrieve email list ID's matching search patterns
# Return from search is this:
# ('OK', ['1 2 3 4 5 6 7 8 9 10 11 12 13 14'])
data = box.search(None, 'ALL')[1]
for num in data[0].split():
# Retrieve message headers and body
headers = email.message_from_string(box.fetch(num, '(RFC822)')[1][0][1])
body = headers.get_payload()
if not isinstance(body, str):
body = headers.get_payload()[0].get_payload()
print headers, body
이 이메일은 핫메일 또는 Gmail하지만로부터 전송되는 매력처럼 작동을 할 때마다 이메일이 안드로이드 기본에서, 예를 들어, 전송 APP를 우편으로 보내면 다음과 같은 메시지가 표시됩니다.
=?utf-8?B?RndkOiBDYXBzaGFyZTogaW1wb3J0aW5nIGZyb20gUGhvdG9z?
U2VudCBmcm9tIG15IEhUQwoKLS0tLS0gRm9yd2FyZGVkIG1lc3NhZ2UgLS0tLS0KRnJvbTogIkFs
ZXhhbmRlciBBdnRhbnNraSIgPGFsZXhAYXZ0YW5za2kuY29tPgpUbzogIlBlam1hbiBNYWtoZmki
IDxwakBtYWtoZmkuY29tPgpTdWJqZWN0OiBDYXBzaGFyZTogaW1wb3J0aW5nIGZyb20gUGhvdG9z
CkRhdGU6IFdlZCwgU2VwIDEwLCAyMDE0IDk6MDYgUE0KCkhpIFBlam1hbiwKCkkgd2FzIHBsYXlp
bmcgd2l0aCBDYXBzaGFyZSB0b2RheSBhbmQgZm91bmQgc29tZXRoaW5nIG1pc3NpbmcuIEkgZ3Vl
c3MgeW91CmhhdmUgcGxhbnMgZm9yIGl0LCBidXQgaXQgZG9lc24ndCBodXJ0IHRvIG1lbnRpb24g
aXQsIGp1c3Qgb24gY2FzZS4uLgoKV2hlbiBpbXBvcnRpbmcgcGhvdG9zLCBJIGhhdmUgdGhlIG9w
dGlvbiB0byBlaXRoZXIgZ2V0IG9uZSBvZiB0aGUgaW1hZ2VzCnRoYXQgYXJlIGRvd25sb2FkZWQg
b24gbXkgcGhvbmUsIG9yIHRvIHRha2UgYSBuZXcgcGljdHVyZS92aWRlby4gV2hhdCdzCm1pc3Np
bmcgaXMgYWJpbGl0eSB0byBnZXQgcGhvdG9zIGZyb20gbXkwcyBJJ3ZlIHVzZWQgZG9uJ3Qg
Y2FyZSB3aGVyZSB0aGUgcGhvdG8gaXMgbG9jYXRlZCBhbmQgYWxsCnBpY3R1cmVzIGFyZSBlcXVh
bGx5IGFjY2Vzc2libGUgKG9yIG1heWJlIHRoaXMgYXBwbGllcyBvbmx5IHRvIEdvb2dsZQphcHBz
PykuCgpOb3QgaW1wb3J0YW50LCBubyBpZGVhIGlmIGl0IGlzIGp1c3QgYSBsaW5lIG9yIHR3byBm
aXggb3Igc29tZXRoaW5nIG1vcmUKY29tcGxpY2F0ZWQuCgpUYWtlIGNhcmUsCgotIEFsZXgsIGJl
dGEgdGVzdGVyLCBRQSB2b2x1bnRlZXIsIGFuZCBzZW5pb3IgcGVza3kgc3RpY2tsZXI=
휴대 전화에서 이메일을 보내고 있습니다. 나는 이것이 RFC822에 기반한 이메일의 헤더를 올바르게 짓지 않는 몇몇 emailers에 관한 것이지만, 어떻게 든이를 고치고 모든 이메일을 검색 할 수 있어야한다고 생각한다.
이 문제를 해결하는 방법에 대한 몇 가지 힌트를 보내 주시면 감사하겠습니다. 미리 감사드립니다.
당신은'내용-Type'와'콘텐츠 전송-Encoding' 헤더를 확인해야한다 – goncalopp
또한,이 [MIME임을 주목할 필요가 ] (https://en.wikipedia.org/wiki/MIME), 기본 rfc822에 지정되지 않았습니다. RFC 2045-2047 – goncalopp
을 읽어야합니다. 그 헤더에 대해서는 몰랐습니다. 정보 주셔서 감사합니다! –