Python IMAP - 使用' +'读取Gmail在电子邮件地址

时间:2014-11-04 13:20:30

标签: python email python-3.x imap gmail-imap

我以前在Python 3中使用过imaplib来从gmail中提取电子邮件。但是,我想生成一个脚本,以便在加号后用不同的字符串将电子邮件区分为相同的地址。例如,基本电子邮件地址可以是:

example@gmail.com

然后我想分别阅读所有地址为的电子邮件:

example+test1@gmail.com,
example+test2@gmail.com,
example@gmail.com.

因此,我最终会找到包含特定电子邮件的列表字典。这仅适用于example@gmail.com。例如:

{'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 个答案:

答案 0 :(得分:0)

您应该直接在IMAP搜索请求中使用您想要的确切邮件地址。例如,它可能是:

result,data = self.M.uid('search', None, '(SENTSINCE {date})'.format(date=date),
    ('TO example+test1@gmail.com'))