一、实验目的
- 练习python脚本开发的smtplib模块的使用;
- 理解实际工作场景中的邮件提醒需求,通过编写python脚本实现邮件告警提醒。
二、实验内容
- 编写python脚本,实现对指定目录的监控;
- 将监控结果通过邮件方式,发送给相关人员的邮箱,可以QQ邮箱为例。
三、实验操作
在QQ邮箱中开启 SMTP 服务
获得授权码并把他保存下来后面有用
使用 Python 发送一封简单的邮件
编写send_mail_demo.py文件进行简单的测试 验证SMTP服务已开启
第 1 行:导入 smtplib 库
第 2 行:从 email.mime.text 中导入 MIMEText 子模块
第 3~5 行:QQ 邮箱 SMTP 的服务器、用户名、授权码
第 7 行:发件人的 QQ 邮箱号
第 8 行:收件人的 QQ 邮箱号,注意,可以有多个收件人
第 9 行:设置邮件的内容为文本格式,编码方式为 utf-8
第 10~12 行:设置邮件的发件人、收件人、主题,其中收件人调用了字符串的 join
方法后,将原先的列表转为字符串格式,分隔符为“;”
第 14~21 行:异常捕获,捕获在邮件发送时出现的异常并在 except 分支打印出异常
的具体信息;其中 15 为指定 SMTP 服务端口,16 行为创建发送邮件的对象,17 行为登
录邮箱,第 18 行为发送邮件,第 19 行打印输出提示信息“打印成功”。
发送成功
验证成功
编写 txt2mail.py 文件,实现发送邮件的类,其功能是解析文本文件的内容,并发送邮件
验证文件编写成功
编写watch_mail.py文件,利用在txt2mail.py定义的 txtMail,实现目录监控并发送告警邮件
验证文件编写成功本图是是运行 watch_mail.py 的监测信息输出
执行 watch_mail.py 文件后,在根目录下创建 text.txt 文件
发现有邮箱告警提醒 实验成功
四、实验小结
如果要进行邮箱告警提醒,首先需要将邮箱中的SMTP服务开启,这样会收到一个授权码。
为什么要配置邮箱呢?具体要配置什么呢?
因为我们申请的一些免费邮箱都是默认不开启smtp/pop协议的。
SMTP是发邮件使用到的计算机网络中应用层协议中的一个;而POP则是收邮件时使用到的计算机网络中的应用层协议的其中一个。配置就是要开启这项服务。否则我们就不能实现用Python代码来控制发送和接收邮件了。
文本文件 txt 约定格式为:第一行——收件人,以逗号分割;第二行——主题;第三行至最后一行——正文内容,最后一行如果为文件,则作为附件发送,支持多个附件,以逗号分割。
在实际的生产环境中,可以根据具体情 形分析,定义邮件类型;或者以此为基础,编写可以解决实际问题的告警文件,是一个非常实用的功能。