首页 > 解决方案 > 使用python读取单个电子邮件链中的电子邮件数量

问题描述

我正在阅读收件箱中的未读电子邮件。我正在获取未读电子邮件的总数,但我无法单独获取单个电子邮件链中的电子邮件数量。例如。有三封未读邮件(一封有 10 封邮件链,一封有 4 封邮件链,最后一封有 5 封邮件链)。我将输出作为 19 封未读电子邮件进行更正,但将主题存储在 pandas 数据框中,然后仅获取唯一值,这给了我 3 封未读电子邮件。但我仍然无法获得单个电子邮件链中的电子邮件数量,即 10、4 和 5。

我正在使用 imaplib 来获取电子邮件。

mail = imaplib.IMAP4_SSL('imap.gmail.com')
(retcode, capabilities) = mail.login(username,password)
mail.select('Inbox')
n_unread_emails=0
(retcode, messages) = mail.search(None, '(UNSEEN)')
if retcode == 'OK':
   for num in messages[0].split() :
      n_unread_emails = n_unread_emails + 1
      typ, data = mail.fetch(num,'(RFC822)')
      for response_part in data:
         if isinstance(response_part, tuple):
             original = email.message_from_string(response_part[1])
             alerttrack = alerttrack.append({'Subject' : str(original['Subject']).replace('[Check_mk Alert RCA] ','')}, ignore_index = True)

n_unread_emails = alerttrack.Subject.nunique(dropna = True) 
print "Number of Unread Mails are " + str(n_unread_emails)

这就是我所说的单个电子邮件链的意思。第一条链有 4 封电子邮件,第二条有 1 封,第三条有 1 封,最后一条有 4 封。我希望输出为 4,1,1,4。

标签: pythonemail

解决方案


推荐阅读