错了" uid"用imaplib搜索时

时间:2014-06-03 02:28:46

标签: python email imaplib

我在开发python应用程序时遇到了一个奇怪的问题。

应用程序应解析未读消息的邮件收件箱,获取特定消息,处理正文并将其存储到数据库中。

我的前7封邮件似乎一切正常,但是使用最后一封和4封@gmails,结果与预期的不匹配,存储在数据库中的邮件不是&#39 ;正确的,事实上,它们正好是正确之后的第4封邮件。

我正在展示我开发的代码,对我来说太难了,我是一个新编码:

主要的.py

from src_pckg import reader

reader.read("***@m***p.com", "***", "imap.***.com", 993, "noreply@s***d.com")

reader.py

def read(username, password, host, port, sender_of_interest):
    #Con details
    imap_con = imaplib.IMAP4_SSL(host, port)
    imap_con.login(username, password)
    imap_con.select("INBOX")

    #Print all unread messages from a certain sender
    status, response = imap_con.search(None, 'UNSEEN', '(FROM "%s")' % (sender_of_interest))
    unread_msg_nums = response[0].split()
    print(len(unread_msg_nums))
    for e_id in unread_msg_nums:
        status, data = imap_con.uid('fetch', e_id, '(RFC822)')
        msg = data[0][1].decode(encoding='UTF-8')

        if re.search("has given you a gift subscription", msg):

            #Process the mail

    return True

0 个答案:

没有答案