💻 源代码
import imaplib
import email
from email.header import decode_header
def connect_email(email_addr, password, server='imap.qq.com'):
"""连接邮箱"""
mail = imaplib.IMAP4_SSL(server)
mail.login(email_addr, password)
return mail
def get_latest_emails(email_addr, password, count=10):
"""获取最新邮件"""
mail = connect_email(email_addr, password)
mail.select('INBOX')
# 获取最新邮件
_, messages = mail.search(None, 'ALL')
email_ids = messages[0].split()[-count:]
emails = []
for eid in email_ids:
_, msg = mail.fetch(eid, '(RFC822)')
email_msg = email.message_from_bytes(msg[0][1])
# 解析发件人和主题
subject = decode_header(email_msg['Subject'])[0][0]
from_addr = decode_header(email_msg['From'])[0][0]
emails.append({
'subject': subject,
'from': from_addr,
'date': email_msg['Date']
})
mail.close()
mail.logout()
return emails
# 示例
emails = get_latest_emails('your_email@qq.com', 'your_password')
for e in emails:
print(f"主题: {e['subject']}, 发件人: {e['from']}")