2

我正在尝试获取一个 python 脚本,该脚本使用 imap 浏览我的 gmail 收件箱,并打印出任何看不见的电子邮件的主题和发件人。我已经开始了,但目前我认为它不能对看不见的电子邮件进行排序或从中提取主题和发件人

有谁知道如何完成这段代码?

import imaplib
import email
user = "x"
password = "y"

mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login(user, password)
mail.list()
mail.select('inbox')

unseen_emails = mail.search(None, 'UnSeen')
print unseen_emails
4

2 回答 2

0

我的外部库https://github.com/ikvk/imap_tools

from imap_tools import MailBox, AND

# get list of unseen emails from INBOX folder
with MailBox('imap.mail.com').login('test@mail.com', 'pwd', 'INBOX') as mailbox:
    for msg in mailbox.fetch(AND(seen=False)):
        msg.subject   # str: 'some subject 你 привет'
        msg.from_     # str: 'Sender@ya.ru'

注意:mailbox.fetch 有 mark_seen 参数!

于 2021-02-11T10:03:35.670 回答
0

如果您愿意使用 poplib,这应该可以。

import poplib

mymail = []

host = "pop.gmail.com"
mail = poplib.POP3_SSL(host)
print (mail.getwelcome())
print (mail.user("user@gmail.com"))
print (mail.pass_("password"))
print (mail.stat())
print (mail.list())
print ("")

if mail.stat()[1] > 0:
    print ("You have new mail.")
else:
    print ("No new mail.")

print ("")

numMessages = len(mail.list()[1])
numb=0
for i in range(numMessages):
    for j in mail.retr(i+1)[1]:
        numb+=1
        if numb == 4 or numb == 5:
            print(j)

mail.quit()
input("Press any key to continue.")

请确保在您的 google 帐户中允许安全性较低的应用程序: https ://myaccount.google.com/lesssecureapps

于 2017-08-14T13:39:30.987 回答