2012-11-03 1 views
1

IMAPClient가 정말 들리기 시작했습니다. 코드 :IMAPClient 및 BODY [HEADER.FIELDS (FROM)] 필드

[email protected] 

내가 내려 변수 처음에 전달하고 트림이 필요하거나입니다 수행 'BODY[HEADER.FIELDS (FROM)]' 반환

From: First Last <[email protected]> 

나는이 같은 이메일 주소를 반환하는 것 정말 좋아 다른 fetch 수정자를 사용할 수 있습니까?

response = server.fetch(messages, ['FLAGS', 'RFC822.SIZE', 'BODY[HEADER.FIELDS (FROM)]']) 
for msgid, data in response.iteritems(): 
    print ' ID %d: %d bytes, From: %s flags=%s' % (msgid, 
              data['RFC822.SIZE'], 
              data['BODY[HEADER.FIELDS (FROM)]'], 
              data['FLAGS']) 
+0

응답을 인쇄하는 대신 각 문자를 어떻게 문자열로 변환합니까? 'print '를'data ='로 바꾸고'data [0]'등을 실행하려고 시도했지만 작동하지 않았습니다. –

+0

이제 질문은 무엇입니까? 그리고 왜 두 가지 계정이 있습니까? ;) –

+0

str()은 파이썬에서 문자열을 바꾸는 방법입니다. – Max

답변

3

없음 - 당신은 당신이 내 다른 포스트를 보면 당신은 parseaddr를 사용하는 것을 알 수 있습니다 만, 여기 당신의 예를 다시이며,는 IMAP 요청을 할 수 없어 :

>>> from email.utils import parseaddr 
>>> a = 'From: First Last <[email protected]>' 
>>> parseaddr(a) 
('First Last', '[email protected]') 
0

IMAPLIB는 프로토콜의 대부분을 구문 분석하지 않습니다. 그것은 서버에서 라인을 반환합니다.

email 라이브러리의 파서를 사용하면 도움이됩니다.