支持IMAP协议的邮件收取,底部有完整代码,笔者已测试对接QQ邮箱和163邮箱
Python版本:3.9.6
ide:PyCharm 2021.1.3
前段时间要用到一个邮件附件下载的功能,当时任务没有派到我这里,这两天想自己写一个邮件读取的功能练练手,后续有机会完善下POP3协议收取和STMP协议发送的功能。
话不多说,直接开干。由于大部分都是解释文本的内容,就不细述开发过程,主要把遇到的几个问题描述下:
1、需要获取使用的邮箱服务器的配置地址和端口,比如QQ邮箱。

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

3、对接163邮箱,需要在连接之前上传配置,否则会报错,这个问题找了好久才找到答案。参考http://blog.youkuaiyun.com/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

本文介绍了使用Python的IMAP协议收取邮件的方法,包括遇到的问题和解决策略,如授权码的使用、163邮箱的特殊配置以及邮件正文的解析。提供了一个完整的Python代码示例,支持QQ邮箱和163邮箱。
最低0.47元/天 解锁文章
1027





