python3自动读取QQ邮箱的附件 脚本

python3自动读取QQ邮箱的附件 脚本

环境

python3 实现,QQ 邮箱,开启SMTP /POP 服务

注意

账号密码:密码 不是账号密码,而是认证码。需要开启服务获取。

参考
  • https://blog.csdn.net/weixin_41846769/article/details/113864647python3
    读邮件
  • https://blog.csdn.net/weixin_42558201/article/details/122338936
    python3 读邮件附件脚本
  • https://coffeemilk.blog.csdn.net/article/details/123358350?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-5-123358350-blog-124468065.pc_relevant_multi_platform_whitelistv3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-5-123358350-blog-124468065.pc_relevant_multi_platform_whitelistv3&utm_relevant_index=6
    获取认证码
获取方式:
import os
from imbox import Imbox
import keyring
#这句话不用的话 后面main函数就不需要keyring.get的函数,直接password=‘你的认证码’
keyring.set_password("qqemail","name",password)

# 存储附件
def save_attachments(attachments, save_dir='attachmemt'):
    #设置存放路径
    if not  os.path.exists(save_dir):
        os.mkdir(save_dir)
    fujian_path_list = []
    for attachment in attachments:
        save_path = os.path.join(save_dir, attachment['filename'])
        with open(save_path, 'wb') as f:
            f.write(attachment['content'].getvalue())
        fujian_path_list.append(save_path)
    return fujian_path_list

def doMain(id,password):
    #  Imbox(服务器,邮箱用户名,密码,SSL加密) password 是认证码,非密码:由QQ邮箱服务生成
    with Imbox('imap.qq.com', id, password, ssl=True) as imbox:
        all_inbox_messages = imbox.messages() # 获取全部邮件
        # email_list = email_server.messages(unread=True)  # 未读邮件
        # read_inbox_messages = self.email_server.messages(unread=False)  # 已读邮件
        # flagged_inbox_messages = self.email_server.messages(flagged=True)  # 红旗标记邮件
        i = 0
        for uid, message in all_inbox_messages:
            i +=1
            if i > 150:
                print('test finish')
                break
            # imbox.mark_seen(uid)   # 标记为已读
            # imbox.delete(uid)  # 删除
            print(message.subject)  # 邮件主题
            print(message.sent_from)  # 发件人
            #print(message.sent_to)  # 收件人
            print(message.date)  # 发送日期
            #print(message.body['plain']) # 邮件文本格式正文
            #print(message.body['html']) # html格式正文
            if str(message.subject).find("周报") == 1:
                continue
            print(message.attachments) # 附件
            save_attachments(message.attachments)

            #if str(message.subject).find('奖学') == 1:
            #    print(message.attachments) # 附件



if __name__ == '__main__':
    password = keyring.get_password("qqemail","name")
    id='XXX@qq.com'
    doMain(id,password)
在这里插入代码片
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值