Python办公自动化——批量发送邮件

Python办公自动化——批量发送邮件

需求描述

之前的博客中有些代码较多的,我一般会在文章中说明,“有需要数据集或代码的留个邮箱!”。之后看到后我会根据这些评论把文件发送给指定邮箱,相比于每次都打开网页版的邮箱,一次次的发送,Pythonyagmail 库为我们提供了更好更快捷的方式,能够让我们一次发送多封邮件给不同的人。


安装所需依赖

yagmail:它是一个 GMAIL/SMTP 客户端,旨在使其尽可能简单的发送电子邮件。
keyring:它提供了一种从 Python 访问系统 keyring 服务的简单方法。它可以用于任何需要安全密码存储的应用程序。

使用如下代码安装两个库:

pip install yagmail keyring

开启IMAP/SMTP服务

这里以qq邮箱为例,开启 IMAP/SMTP 服务后,会给一个授权码,之后可以通过授权码进行登录。
在这里插入图片描述
IMAP是什么?
IMAP,即 Internet Message Access Protocol(互联网邮件访问协议),可以通过这种协议从邮件服务器上获取邮件的信息、下载邮件等。IMAPPOP 类似,都是一种邮件获取协议。
在这里插入图片描述


编写代码

将密码或是重要信息直接写到代码中是很危险的,我们可以利用 yagmail 将密码进行存储,之后使用时就可以忽略 password ,直接使用 username 进行操作。
存储邮箱密码:

import yagmail

yagmail.register('xxxxxx@qq.com', '密码/授权码')

群发邮件:

import yagmail

# 创建SMTP服务实例
email = yagmail.SMTP(user='xxxxxx@qq.com', host='smtp.qq.com')
# 添加邮件内容
contents = ['整理不易!如有帮助,请三连支持一下博主!',
            r'附件本地路径,如:C:\Users\pc\Desktop\test.csv',
            r'附件路径']
# 添加接收人
received = ['xxxxxx@qq.com', 'xxxxxxx@qq.com']
# 发送邮件
email.send(received , '主题', contents)

是不是很简单呢!

但细心的可能会发现,contents 路径中的文件会自动添加到附件中,那么如果要在正文中添加图片的话要如何使用呢?我们可以使用 yagmail.inline(图片路径)

contents = ['整理不易!如有帮助,请三连支持一下博主!',
			yagmail.inline(r'C:\xxx\xxx.png'),
            r'附件本地路径,如:C:\Users\pc\Desktop\test.csv',
            r'附件路径']

内容参考

yagmail 官方文档
keyring 官方文档
如何使用IMAP服务?



这就是本文所有的内容了,如果感觉还不错的话。❤ 点个赞再走吧!!!❤

在这里插入图片描述
后续会继续分享《Python自动化办公》系列文章,如果感兴趣的话可以点个关注不迷路哦~。

  • 41
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 57
    评论
ensp是一款嵌入式网络模拟平台,可以用于模拟网络设备的运行环境。在ensp中玩转Python自动化,可以实现批量修改交换机的登录密码。 首先,我们可以使用Python的Paramiko库来连接交换机,并通过SSH协议进行远程操作。在开始之前,需要确保已经安装了Paramiko库。 接下来,首先需要创建一个函数来连接交换机。在函数中,可以指定交换机的IP地址、登录用户名和密码,并通过SSH协议进行连接。 在连接成功后,可以通过发送指令来修改交换机的登录密码。使用Paramiko库提供的SSHClient对象的`exec_command`方法,可以向交换机发送指令,并接收返回结果。 具体的操作步骤如下: 1. 导入所需的库: ```python import paramiko import time ``` 2. 创建连接函数: ```python def connect_switch(ip, username, password): ssh_client = paramiko.SSHClient() ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh_client.connect(ip, username=username, password=password) return ssh_client ``` 3. 修改登录密码函数: ```python def change_password(ip, username, password, new_password): ssh_client = connect_switch(ip, username, password) command = f"passwd {username}\n" # 发送修改密码的指令 stdin, stdout, stderr = ssh_client.exec_command(command) stdin.write(password + "\n") # 输入旧密码 stdin.write(new_password + "\n") # 输入新密码 stdin.write(new_password + "\n") # 再次输入新密码 time.sleep(1) output = stdout.read() + stderr.read() ssh_client.close() return output ``` 4. 调用修改密码函数: ```python if __name__ == '__main__': ip = "交换机IP" username = "登录用户名" password = "登录密码" new_password = "新密码" output = change_password(ip, username, password, new_password) print(output) ``` 以上就是使用Python自动化批量修改交换机登录密码的方法。在ensp中,可以通过编写Python脚本,实现自动化的操作,提高工作效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 57
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Dream丶Killer

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值