用python自动办公实例_用Python自动化管理邮件太方便了,三个实用例子带你体会...

来源:早起Python

作者:自动化工作组

大家好,我是早起。

在之前的文章中我们已经了解如何对自己的邮箱做一些代码操作前的基础配置,以及通过 Python 代码收发、读取邮件。本文将简单复习之前的部分重点内容,并通过 3 个小案例进一步分享一个实用技巧:将邮件写入 Excel 中。

之前的文章中我们也提到,基础配置需要打开 POP3/SMTP/IMAP,针对不同邮箱有不同的操作,并以网易 163 邮箱和 QQ 邮箱 举例说明,其他邮箱设置基本类似。详情可以查看我之前的Python办公自动化系列文章。

如果你来不及看,至少需要了解下面几个概念

3918a15439073659b080d24906dff992.png

为了体现通用性,这次我们再换一个邮箱讲解,下面的案例均以 88 完美邮箱为例示范,本文主要将分为下面两个部分介绍

imbox 收取邮件

openpyxl 写入 Excel 文件

1.案例一

“将邮箱里所有邮件的相关信息存到 Excel 中备份”

要解决这个需求,首先我们利用 keyring 库,通过系统密钥环将开启 IMAP/SMTP服务后获得的密码(授权码)预先在本地存储好。首先打开命令行输入python后输入:

import keyringkeyring.set_password("88mail", "test@88.com", "password")

这样 password 在本地存储好了,后面只需要 keyring.get_password 获取作为变量即可:

import keyringpassword = keyring.get_password('88mail', 'test@88.com')

打开 88 邮箱的网页版,进一步确认是否配置是否完成,以及服务器邮箱:

d51557e96098f535af2c97a5caa964d7.png

用 imbox 读取邮件的代码如下:

import keyring from imbox import Imboxpassword = keyring.get_password('88mail', 'test@88.com')with Imbox('imap.88.com', 'test@88.com', password, ssl=True) as imbox: # 获取全部邮件 all_inbox_messages = imbox.messages() # 获取全部邮件 for uid, message in all_inbox_messages: print(uid) # 邮件编号 print(message.sent_from) # 发件人 print(message.subject) # 邮件主题 print(message.date) # 日期 print(message.body['plain']) # 邮件文本格式正文 print(message.attachments) # 附件

关于上面的代码有几个地方需要注意一下:

Imbox('imap.qq.com', 'xxx@qq.com', passw

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的接口自动化测试框架。 首先,需要安装pytest库。可以使用以下命令: ```python pip install pytest ``` 然后,可以创建一个项目文件夹,并在其中创建以下文件: 1. `conftest.py`:用于定义全局配置和夹具。 2. `test_*.py`:包含测试用例的文件(可以有多个)。 接下来,我们将逐步介绍如何编写这些文件。 ## conftest.py 在这个文件中,我们可以定义一些全局配置和夹具。这里有一个例子: ```python import pytest import requests @pytest.fixture(scope="session") def api(): """创建一个API客户端实例""" return requests.Session() @pytest.fixture(scope="session") def base_url(): """定义API的基本URL""" return "http://api.example.com" @pytest.fixture(scope="module") def auth(api, base_url): """执行身份验证,并返回访问令牌""" response = api.post(f"{base_url}/auth", json={"username": "user", "password": "pass"}) token = response.json()["access_token"] api.headers.update({"Authorization": f"Bearer {token}"}) return token ``` 在这个例子中,我们定义了三个夹具: 1. `api`:创建一个API客户端实例,用于发送HTTP请求。 2. `base_url`:定义API的基本URL。 3. `auth`:执行身份验证,并返回访问令牌。 其中,`api`夹具的作用域为`session`,也就是说,在整个测试过程中,只会创建一次这个夹具。而`base_url`和`auth`的作用域为`module`,也就是说,在每个测试模块(即每个`test_*.py`文件)中,都会创建一次这两个夹具。 ## test_*.py 在这些文件中,我们可以编写测试用例。以下是一个例子: ```python def test_get_users(api, base_url, auth): """测试获取所有用户""" response = api.get(f"{base_url}/users") assert response.status_code == 200 assert len(response.json()) > 0 def test_create_user(api, base_url, auth): """测试创建新用户""" data = {"username": "newuser", "password": "newpass"} response = api.post(f"{base_url}/users", json=data) assert response.status_code == 201 assert response.json()["username"] == data["username"] ``` 在这个例子中,我们定义了两个测试用例: 1. `test_get_users`:测试获取所有用户,并检查返回的状态码和用户数量。 2. `test_create_user`:测试创建新用户,并检查返回的状态码和用户名。 这些测试用例将通过以下命令运行: ```python pytest ``` 这将在当前目录中查找所有以`test_*.py`命名的文件,并运行其中的所有测试用例。 总的来说,这是一个非常简单的接口自动化测试框架。您可以根据需要添加更多的夹具和测试用例,并使用pytest的各种特性(如参数化、装饰器等)来扩展它。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值