python邮件处理(1)-IMAP收取邮件

本文介绍了使用Python的IMAP协议收取邮件的方法,包括遇到的问题和解决策略,如授权码的使用、163邮箱的特殊配置以及邮件正文的解析。提供了一个完整的Python代码示例,支持QQ邮箱和163邮箱。
摘要由CSDN通过智能技术生成

支持IMAP协议的邮件收取,底部有完整代码,笔者已测试对接QQ邮箱和163邮箱


Python版本:3.9.6

ide:PyCharm 2021.1.3


        前段时间要用到一个邮件附件下载的功能,当时任务没有派到我这里,这两天想自己写一个邮件读取的功能练练手,后续有机会完善下POP3协议收取和STMP协议发送的功能。

        话不多说,直接开干。由于大部分都是解释文本的内容,就不细述开发过程,主要把遇到的几个问题描述下:

1、需要获取使用的邮箱服务器的配置地址和端口,比如QQ邮箱。

2、现在第三方客户端登录邮箱基本都是使用授权码而不是密码,授权码的获取方式可以百度,使用密码时QQ邮箱和163邮箱都会报错,如下图。

3、对接163邮箱,需要在连接之前上传配置,否则会报错,这个问题找了好久才找到答案。参考http://blog.csdn.net/jony_online/article/details/108638571

 4、解析正文时,一般有两种内容类型,分别是text/html、text/plain,推荐使用纯文本text/plain,text/html格式不固定。

5、163邮箱需要注意下设置,如果IMAP服务没有开启是不能正常使用的,如果看到明明收件箱有邮件却读取不到,有可能是没有收取全部邮件,默认是收取最近30天。


完整代码如下:


"""
function:   IMAP收取邮件
detail:     支持最后一封邮件的文本打印以及所有附件的下载
author:     w.royee
date:       2021-08-21
"""

import email
import email.header
import imaplib
from bs4 import BeautifulSoup


class IMAP:
    def __init__(self):
        # self.user_id = 'XXXX@qq.com'  # QQ邮箱地址
        # self.password = 
  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值