python读取邮件(SMTP)总结2~以QQ邮箱为例

首先,读取邮件要用keyring模块。
读取邮件的内容:
在这里插入图片描述

import keyring
pw=keyring.get_password('yagmail','~~~~~@qq.com') #获取注册码
from imbox import Imbox  #导入imbox
with Imbox('smtp.qq.com','~~~~~@qq.com',pw) as imbox:
    all_messages=imbox.messages()
    for uid,message in all_messages:
        print('uid',uid)
        print('主题',message.subject)
        print('文本格式',message.body['plain'])
        print('发件人:',message.sent_from)
        print('收件人:', message.sent_to)
        print('时间:',message.date)
        print('成功') #读取成功

读取不同类型的邮件
1.未读取邮件 :all_messages=imbox.messages(unread=True)
2.红旗(星)邮件:all_messages=imbox.messages(flagged=True)
3.某人发的:all_messages=imbox.messages(sent_from='~~~~@qq.com')
4.某人收的:all_messages=imbox.messages(sent_to='~~~~@qq.com')

import keyring
pw=keyring.get_password('yagmail','~~~~~@qq.com') #获取注册码
from imbox import Imbox  #导入imbox
with Imbox('smtp.qq.com','~~~~~@qq.com',pw) as imbox:
    all_messages=imbox.messages(flagged=True)  #读取不同类型的文件在这加判断条件
    for uid,message in all_messages:
        print('uid',uid)
        print('主题',message.subject)
        print('文本格式',message.body['plain'])
        print('发件人:',message.sent_from)
        print('收件人:', message.sent_to)
        print('时间:',message.date)
        print('成功') #读取成功

根据时间读取不同的邮件
1.某天之前:date_lt
2.某天之后:date_gt
3某一天:date_on

import keyring,datetime
pw=keyring.get_password('yagmail','~~~~~@qq.com') #获取注册码
from imbox import Imbox  #导入imbox
with Imbox('smtp.qq.com','~~~~~~~@qq.com',pw) as imbox:
    all_messages=imbox.messages(date__on=datetime.date(2021,2,8))  #读取不同时间的文件在这加判断条件
    for uid,message in all_messages:
        print('uid',uid)
        print('主题',message.subject)
        print('文本格式',message.body['plain'])
        print('发件人:',message.sent_from)
        print('收件人:', message.sent_to)
        print('时间:',message.date)
        print('成功') #读取成功

将未读邮件标记为已读邮件

import keyring,datetime
pw=keyring.get_password('yagmail','~~~~~@qq.com') #获取注册码
from imbox import Imbox  #导入imbox
with Imbox('smtp.qq.com','~~~~~@qq.com',pw) as imbox:
    all_messages=imbox.messages(unread=True)  #读取未读邮件
    for uid,message in all_messages:
        imbox.mark_seen(uid)

将制定邮件删除(所有已读情况下)

import keyring,datetime
pw=keyring.get_password('yagmail','~~~~~@qq.com') #获取注册码
from imbox import Imbox  #导入imbox
with Imbox('smtp.qq.com','~~~~~@qq.com',pw) as imbox:
    all_messages=imbox.messages()  #读取未读邮件
    for uid,message in all_messages:
        if message.subject=='~~~~':#要删除邮件主题名
            imbox.delete(uid)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值