python未读邮件_利用Python读取邮件 读取所有邮件、已读邮件、未读邮件 删除已读邮件...

读取keyring密码

前提是你已经通过yagmail设置好了密码,这里我们可以直接从keyring中读取密码:

import keyring

password=keyring.get_password("yagmail","J991737441@163.com")

Python读取邮件

对于163、126邮箱,需要提前配置一下,访问:http://config.mail.163.com/settings/imap/index.jsp?uid=J991737441@163.com,允许第三方客户端读取内容才可以。查看所有邮件

from imbox import Imbox

import keyring

password=keyring.get_password("yagmail","J991737441@163.com")

# IMAP服务器地址,邮箱地址,密码,是否打开SSL加密

with Imbox("imap.163.com","J991737441@163.com",password,ssl=True) as imbox:

all_box_messages=imbox.messages()

for uid,message in all_box_messages:

print(message.subject)

print(message.body['plain'])

每个邮件可以读取的内容

message.sent_from 发件人

message.sent_to 收件人

message.subject 主题

message.date 时间

message.body['plain'] 文本格式内容

message.body['html'] HTML格式内容

message.attacments 附件

查看未读邮件,只需要设置.messages的参数即可

unread_box_messages=imbox.messages(unread=True)

# 红旗邮件

red_flagged_messages=imbox.messages(flagged=True)

# 某发件人邮件

inbox_messages_from=imbox.messages(sent_from='J991737441@163.com')

# 某收件人邮件

inbox_messages_from=imbox.messages(sent_to='J991737441@163.com')

# 根据日期筛选

某天前 date__lt

某天后 date__gt

指定某一天 date__on

inbox_messages_before=imbox.messages(date__lt=datetime.date(2020,5,19))

在根据日期筛选的时候,使用的是datetime模块,需要导入一下,注意date__lt是两个下划线

标记已读:imbox.mark_seen(uid),删除已读:imbox.delete(uid)

from imbox import Imbox

import keyring

password=keyring.get_password("yagmail","J991737441@163.com")

# IMAP服务器地址,邮箱地址,密码,是否打开SSL加密

with Imbox("imap.163.com","J991737441@163.com",password,ssl=True) as imbox:

all_box_messages=imbox.messages()

for uid,message in all_box_messages:

if 满足某种条件的邮件:

imbox.delete(uid)