从 SES 滥用报告电子邮件中获取投诉电子邮件

Getting complaint email from SES abuse report email

我正在使用 python Imaplib 抓取 zoho 收件箱以获取从 SES 发送的退回邮件和失败邮件。

现在,在尝试从滥用报告通知中获取电子邮件时,电子邮件正文没有给出任何结果 (NONE)

密码是:

def ss():
    yesterday = (datetime.today() - timedelta(days=30)).strftime('%d-%b-%Y')

    M = imaplib.IMAP4_SSL('imap.zoho.com')
    M.login('email', password)
    M.select()

    line = '(FROM "complaints@us-west-2.email-abuse.amazonses.com" SINCE {0})'.format(yesterday)
    typ, data = M.uid('search', line)
    # print(typ,data)
    for i in reversed(data[0].split()):

        print(i)
        result, data = M.fetch(i, "(RFC822)")
        print(data)

通常 M.fetch(i, "(RFC822)") returns 电子邮件正文。

这里的数据是None。我想知道如何获得正确的内容,以便我可以使用正则表达式来获得相关的邮件 ID

得到解决方案,这是一个严重的错误。

而不是使用

result, data = M.fetch(i, "(RFC822)")

我不得不使用:

result, data = M.uid('fetch', i, '(RFC822)')

和以前一样,我搜索了 UID 而不是易失性 ID。后来我试图通过 volatile id 获取 RFC822 或邮件正文。

可能是 none 因为邮件可能已被删除或其他原因。