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



我以前在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

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

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

相关内容

  • 没有找到相关文章

最新更新