2014-11-04 95 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]')) 
相关问题