2017-02-17 119 views
0

我正在使用python Imaplib抓取zoho收件箱以获取退回的电子邮件&从SES发送的失败电子邮件。从SES滥用报告电子邮件中收到投诉电子邮件

现在试图摆脱滥用报告通知的电子邮件,在电子邮件正文没有给出结果(无)

的代码是:

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 "[email protected]" 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(我“(RFC822 )“)返回电子邮件的正文。

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

回答

1

得到了解决方案,这是一个很糟糕的错误。

而不是使用

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

的我不得不使用:

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

正如前面我通过UID已经搜查代替FO的挥发性ID。后来,我试图通过易失性标识来获得RFC822或邮件正文。

它可能没有提供,因为邮件可能已被删除或其他东西。