利用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)
分享到 :

发表评论

登录... 后才能评论