2014-11-04 134 views
-1

我以前在Python 3中使用imaplib從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 2014-11-04 14:08:15

+0

從IMAP閱讀顯示整個電子郵件框,我想過濾結果,只讀取在Gmail中創建的特定過濾器 – user2694306 2014-11-04 14:17:40

+0

您是否已經將它們過濾到Gmail中的標籤/文件夾?如果是這樣,請閱讀該文件夾。 – Max 2014-11-04 14:27:23

回答

0

您應該直接在IMAP搜索請求使用你想要的確切電子郵件地址。例如,它可能是這樣的:

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