2010-06-06 2 views
1

전 완전히 프로그래밍에 익숙하지 않고 특정 이메일 주소로 msg를 보내는 자동 응답기를 만들려고합니다.python을 사용하여받은 편지함의 각 이메일을 어떻게 반복합니까?

if 문을 사용하면받은 편지함에있는 특정 주소의 이메일이 있는지 확인할 수 있으며 이메일을 보낼 수 있지만 해당 주소에서 이메일이 여러 개인 경우 for 루프를 보내려면 어떻게해야합니까? 특정 주소의 모든 이메일에 대한 이메일

나는 루프로 사용을하려고 노력 :

for M.search(None, 'From', address) in M.select(): 

하지만 오류를 얻을 : 당신이 새로운 주장으로 그 라인

답변

4

에 "전화 기능을 할당 할 수 없습니다" 프로그래밍, 최선의 조언은 : 항상 설명서를 읽으십시오.

어쩌면 tutorial을 먼저 읽어야합니다.

import getpass, imaplib 

M = imaplib.IMAP4() 
M.login(getpass.getuser(), getpass.getpass()) 
M.select() 
typ, data = M.search(None, 'ALL') 
for num in data[0].split(): 
    typ, data = M.fetch(num, '(RFC822)') 
    print 'Message %s\n%s\n' % (num, data[0][3]) 
M.close() 
M.logout() 

당신이 봤어 :


documentation 예를 제공? 당신이 for loop를 정의 할 때

, 그것은 같이해야합니다 : 코드에 대해서는


for x in some_data_set: 

x 한 번에 하나 개의 항목의 값을 유지하는 변수 (그리고 for 루프 본문에서만 액세스 할 수 있습니다 (한 가지 예외가 있지만 여기서는 중요하지 않습니다).

당신이하고있는 일은 imaplib 모듈과 관련이 없지만 잘못된 구문입니다.

btw. .select()은 사서함을 선택하고의 메시지 수인 만 반환합니다. 나는. 단지 스칼라 값은 어떤 순서 당신은 반복되지 수 :

IMAP4.select([mailbox[, readonly]])
Select a mailbox. Returned data is the count of messages in mailbox (EXISTS response). The default mailbox is 'INBOX'. If the readonly flag is set, modifications to the mailbox are not allowed.

을 (이것은 실제로 모듈은 imaplib 관련이;))