自研开源项目(1)邮件收发解析处理高层封装应用库caterpillar_mail

自研开源项目(1)邮件收发解析处理高层封装应用库caterpillar_mail

自研开源项目(2)打印日志高层封装应用库caterpillar_log

自研开源项目(3)基于pytest和数据驱动的自定义接口自动化框架caterpillar_apitest

自研开源项目(4)基于pytest框架推荐的自动化测试架构及脚本模板caterpillar_pytest_templates

一、安装

pip install -U caterpillar_mail

caterpillar_mail 的源码地址

二、发送邮件

2.1、最简单的方式(已实现163,126,qq,yeah.net类型的邮箱)

如下,除了导入语句,两行代码即可发送邮件,邮箱授权码获取参考 Python实战技巧(11)使用python收发邮件时需要的邮箱授权码如何获取

from caterpillar_mail import Email

# 初始化对象,初始化参数为发件箱及授权码
email=Email("hitredrose@163.com","LRRDUxxxxEMLK")  
# 发送邮件,第一个参数为收件人地址,第二个邮件标题,第三个标题为邮件内容
email.send("redrose2100@163.com","发送邮件测试标题","你好啊\n哈哈哈\n我是用来测试邮件的!") 

如果收件人为多个时,只需要使用逗号分隔即可,如下:

from caterpillar_mail import Email

# 初始化对象,初始化参数为发件箱及授权码
email=Email("hitredrose@163.com","LRRDUxxxxEMLK")  
# 发送邮件,第一个参数为收件人地址,第二个邮件标题,第三个标题为邮件内容
email.send("redrose2100@163.com,redrose2200@163.com","发送邮件测试标题","你好啊\n哈哈哈\n我是用来测试邮件的!") 

### 三、解析邮件
##### 3.1、最简单的方式(查看一封邮件)
(1)获取最新的邮件并解析

```python
from caterpillar_mail import Email

email=Email("redrose2100@163.com","XTSDDNHNDTVDZBIO")
obj = email.get_latest_email()
print(obj.from_name)   # 发件人名字
print(obj.from_addr)   # 发件人邮箱
print(obj.to_name)     # 收件人名字
print(obj.to_addr)     # 收件人邮箱
print(obj.date)        # 邮件时间
print(obj.subject)     # 邮件标题
print(obj.context)     # 邮件内容

打印结果如下:
在这里插入图片描述
(2)通过邮件标题过滤,查询符合过滤条件的最新的邮件

from caterpillar_mail import Email

email=Email("redrose2100@163.com","XTSDDNHNDTVDZBIO")
obj = email.get_latest_email(subject="测试邮件收发")
print(obj.from_name)   # 发件人名字
print(obj.from_addr)   # 发件人邮箱
print(obj.to_name)     # 收件人名字
print(obj.to_addr)     # 收件人邮箱
print(obj.date)        # 邮件时间
print(obj.subject)     # 邮件标题
print(obj.context)     # 邮件内容

打印结果如下:
在这里插入图片描述
(3)通过发件人过滤,查询复核过滤条件的最新的邮件

from caterpillar_mail import Email

email=Email("redrose2100@163.com","XTSDDNHNDTVDZBIO")
obj = email.get_latest_email(from_addr="985224350@qq.com")
print(obj.from_name)   # 发件人名字
print(obj.from_addr)   # 发件人邮箱
print(obj.to_name)     # 收件人名字
print(obj.to_addr)     # 收件人邮箱
print(obj.date)        # 邮件时间
print(obj.subject)     # 邮件标题
print(obj.context)     # 邮件内容

打印结果如下:
在这里插入图片描述
(4)通过一个收件人过滤,查询符合条件的最新的邮件

from caterpillar_mail import Email

email=Email("redrose2100@163.com","XTSDDNHNDTVDZBIO")
obj = email.get_latest_email(to_addr="redrose2200@163.com")
print(obj.from_name)   # 发件人名字
print(obj.from_addr)   # 发件人邮箱
print(obj.to_name)     # 收件人名字
print(obj.to_addr)     # 收件人邮箱
print(obj.date)        # 邮件时间
print(obj.subject)     # 邮件标题
print(obj.context)     # 邮件内容

打印结果如下:
在这里插入图片描述
(5)subject,from_addr,to_addr 三个参数均支持正则表达式,比如发件人使用正则过滤

from caterpillar_mail import Email

email=Email("redrose2100@163.com","XTSDDNHNDTVDZBIO")
obj = email.get_latest_email(from_addr="\d{9}")
print(obj.from_name)   # 发件人名字
print(obj.from_addr)   # 发件人邮箱
print(obj.to_name)     # 收件人名字
print(obj.to_addr)     # 收件人邮箱
print(obj.date)        # 邮件时间
print(obj.subject)     # 邮件标题
print(obj.context)     # 邮件内容

打印结果如下:
在这里插入图片描述

上述几种方法未实现所有类型的邮箱,目前只实现了部分邮箱,如果发送邮件类型未在上述之列,则一种解决方式是到 caterpillar_mail源码 提交issue,然后等待,另外一种解决方案就是使用下述方式自行指定邮箱服务器的方式

3.3、自指定邮箱服务器接收邮件并解析(通用方式)
from caterpillar_mail import ReadEmail
read_email = ReadEmail("pop.163.com")    # 163邮箱收件箱服务器地址
read_email.login("hitredrose@163.com", "LRRDUxxxxxYHEMLK")
emails = read_email.get_latest_n_email(n=1)   # emails是一个列表,返回最新的n封邮件,每个元素即为一个邮件对象
for obj in emails:
    print(obj.from_name)   # 发件人名字
    print(obj.from_addr)   # 发件人邮箱
    print(obj.to_name)     # 收件人名字
    print(obj.to_addr)     # 收件人邮箱
    print(obj.date)        # 邮件时间
    print(obj.subject)     # 邮件标题
    print(obj.context)     # 邮件内容

打印结果如下:
在这里插入图片描述

caterpillar_mail 发布记录

1.0.11 发布日期:2021-11-19

  • 增加对yeah.net邮箱的支持

1.0.10 发布日期:2021-11-19

  • 接收解析邮件提供更高层封装,两行代码即可接收解析邮件,同时发件人支持多人

1.0.9 发布日期:2021-11-18

  • 发送邮件提供更高层封装,两行代码即可发送邮件,同时收件人支持多人

1.0.8 发布日期:2021-11-18

  • 增加QQ邮箱的发送和收取及解析操作

1.0.7 发布日期:2021-11-18

  • 格式化发布文档

1.0.6 发布日期:2021-11-18

  • 格式化发布文档

1.0.5 发布日期:2021-11-18

  • 增加126邮箱的读取和发送

1.0.4 发布日期:2021-11-18

  • 增加解析邮件内容

1.0.3 发布日期:2021-11-17

  • 更新说明文档格式

1.0.2 发布日期:2021-11-17

  • 更新说明文档为.rst格式

1.0.1 发布日期:2021-11-17

  • 发送邮件功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

redrose2100

您的鼓励是我最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值