我以前在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
答案 0 :(得分:0)
您应该直接在IMAP搜索请求中使用您想要的确切邮件地址。例如,它可能是:
result,data = self.M.uid('search', None, '(SENTSINCE {date})'.format(date=date),
('TO example+test1@gmail.com'))