2014-11-04 5 views
-1

이전에 imaplib을 Python 3에서 사용하여 Gmail에서 이메일을 추출했습니다. 그러나 플러스 기호 뒤에 다른 문자열로 동일한 주소로 전자 메일을 구분하는 스크립트를 생성하고 싶습니다. 예를 들어, 기본 이메일 주소가 될 수 있습니다 그러므로 내가이 특정을 포함하는 목록의 사전과 바람 것Python IMAP - 이메일 주소에 '+'가 포함 된 Gmail 읽기

[email protected], 
[email protected], 
[email protected] 

:

[email protected] 

그럼 내가 따로 주소로 모든 이메일을 읽을 것 이메일. 이는 [email protected]에서만 작동합니다. 예를 들어 :

{'example':[], 
'example_test':[], 
'example_test2':[]} 

현재 내가 클래스에서이 기능을 필요로하는 이메일을 검색 할 수 있습니다

def get_emails(self): 
    """Retrieve emails""" 
    self.M = imaplib.IMAP4_SSL(self.server) 
    self.M.login(self.emailaddress,self.password) 
    self.M.select(readonly=1) 
    self.M.select('INBOX', readonly=True) 
    #Yesterdays date 
    date = (datetime.date.today() - datetime.timedelta(self.daysback)).strftime("%d-%b-%Y") 
    print("Selecting email messages since %s" % date) 
    #Retrieve all emails from yesterday on 
    result,data = self.M.uid('search', None, '(SENTSINCE {date})'.format(date=date)) 
    return result,data 
+1

여기서 목표가 무엇입니까? 무슨 일있어? – acushner

+0

IMAP에서 읽음으로써 전체 전자 메일 상자가 표시되고 결과를 필터링하여 Gmail에서 만든 특정 필터 만 읽음 – user2694306

+0

Gmail의 레이블/폴더로 필터링합니까? 그렇다면 그 폴더를 읽으십시오. – Max

답변

0

사용자가 직접 IMAP 검색 요청에 당신이 원하는 정확한 메일 주소를 사용해야합니다. 예를 들면 다음과 같을 수 있습니다.

result,data = self.M.uid('search', None, '(SENTSINCE {date})'.format(date=date), 
    ('TO [email protected]'))