ai didi

python - 如何使用 Python 通过 IMAP 获取未读消息并设置消息读取标志?

转载 作者:太空狗 更新时间:2023-10-29 20:54:09 24 4
gpt4 key购买 nike

import imaplib
def read():

userName = "xxx@gmail.com"
password = "xxxx"
name = 'xxx@gmail.com'
email_ids = [userName]
data = []
imap_server = imaplib.IMAP4_SSL("imap.gmail.com",993)
imap_server.login(userName, password)
imap_server.select('INBOX')
da = []
status, response = imap_server.status('INBOX', "(UNSEEN)")
unreadcount = int(response[0].split()[2].strip(').,]'))
print unreadcount

status, response = imap_server.search(None, '(FROM "xxx@gmail.com")')
email_ids = [e_id for e_id in response[0].split()]
for e_id in email_ids:
_, response = imap_server.fetch(e_id, '(UID BODY[TEXT])')
da.append(response[0][1])
print da


read()

如何组织上面的代码,只读未读邮件?另外,一旦我们阅读了它们,如何使用 Python 将消息标记为已读邮件?

最佳答案

import imaplib

def read(username, password, sender_of_interest):
# Login to INBOX
imap = imaplib.IMAP4_SSL("imap.gmail.com", 993)
imap.login(username, password)
imap.select('INBOX')

# Use search(), not status()
status, response = imap.search(None, 'INBOX', '(UNSEEN)')
unread_msg_nums = response[0].split()

# Print the count of all unread messages
print len(unread_msg_nums)

# Print all unread messages from a certain sender of interest
status, response = imap.search(None, '(UNSEEN)', '(FROM "%s")' % (sender_of_interest))
unread_msg_nums = response[0].split()
da = []
for e_id in unread_msg_nums:
_, response = imap.fetch(e_id, '(UID BODY[TEXT])')
da.append(response[0][1])
print da

# Mark them as seen
for e_id in unread_msg_nums:
imap.store(e_id, '+FLAGS', '\Seen')

关于python - 如何使用 Python 通过 IMAP 获取未读消息并设置消息读取标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22856198/

24 4 0
文章推荐: python - Python Tkinter 中 iconify() 和 withdraw() 的区别
文章推荐: c# - 如何让 ToDictionary 在 F# 中工作?
文章推荐: c++ - 我如何在没有 .pro 文件的情况下在 Qt 中使用 Linguist?
文章推荐: c# - Xamarin PCL 中缺少 System.Timer
太空狗
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com