IMAP에서 읽지 않은 메시지를 가져 오려고합니다. 이메일 내용을 구문 분석하려고 할 때 len(email_message.keys()) == 0
이됩니다. 그래서 나는 결코 From
, To
그리고 Subject
을 얻지 못합니다.메시지를 보낸 사람,받는 사람,받는 사람
인쇄 이메일 (email.message_from_string(email_str)
) : 여기
From nobody Fri Sep 14 13:42:50 2012
1 (RFC822 {1015}
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: from ec2.....amazonaws.com (unknown [IP])
(Authenticated sender: [email protected])
by domain.com (Postfix) with ESMTPA id EACD436CF
for <[email protected]>; Fri, 14 Sep 2012 12:47:54 +0000 (UTC)
DKIM-Signature: ....
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
From: [email protected]
To: [email protected]
Subject: welcome
Dear recipient,
Welcome.
Best,
Robot
그리고 코드입니다 :
def fetch_new_emails(host, port, user, password):
conn = imaplib.IMAP4(host=host, port=port)
try:
(retcode, capabilities) = conn.login(user, password)
conn.select(readonly=1) # Select inbox or default namespace
(retcode, messages) = conn.search(None, '(UNSEEN)')
results = []
if retcode == 'OK':
for message in messages[0].split(' '):
(ret, raw_email) = conn.fetch(message, '(RFC822)')
if ret == 'OK':
print raw_email[0]
email_str = string.join(raw_email[0], "\n")
email_message = email.message_from_string(email_str)
email_from = email_message['From']
to = email_message['To']
subject = email_message['Subject']
results.append({
'from': email_from,
'to': to,
'subject': subject})
except:
print sys.exc_info()[1]
sys.exit(1)
finally:
conn.close()
return results
문제 :
print email_message['From']
>>None
print email_message['To']
>>None
print email_message['Subject']
>>None
raw_email 응답 만 출력 할 수 있습니까? – Max