当前位置: 首页 > news >正文

用 Python 编写自动发送每日电子邮件报告的脚本

第一步:安装必要的库

你需要安装 smtplib(Python 自带),但你需要安装 scheduleemail 库。你可以使用以下命令安装这些库:

pip install schedule

第二步:编写发送邮件的脚本

这里是一个完整的 Python 脚本示例,它会每天发送一封包含报告的电子邮件:

import smtplib
import schedule
import time
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMETextdef send_email():# 电子邮件的内容from_addr = 'your_email@example.com'to_addr = 'recipient_email@example.com'subject = '每日报告'body = '这是今天的报告内容。'# 创建 MIMEMultipart 对象msg = MIMEMultipart()msg['From'] = from_addrmsg['To'] = to_addrmsg['Subject'] = subject# 添加邮件正文msg.attach(MIMEText(body, 'plain'))# 设置 SMTP 服务器smtp_server = 'smtp.example.com'  # 你的 SMTP 服务器smtp_port = 587  # SMTP 服务器端口smtp_user = 'your_email@example.com'  # 登录 SMTP 服务器的用户名smtp_pass = 'your_password'  # 登录 SMTP 服务器的密码try:# 连接到 SMTP 服务器server = smtplib.SMTP(smtp_server, smtp_port)server.starttls()  # 启用 TLS 加密server.login(smtp_user, smtp_pass)  # 登录# 发送邮件server.sendmail(from_addr, to_addr, msg.as_string())print('邮件发送成功')except Exception as e:print(f'邮件发送失败: {e}')finally:server.quit()  # 关闭连接# 安排每日任务
schedule.every().day.at("09:00").do(send_email)  # 每天9点发送邮件print("任务已安排。")# 保持脚本运行
while True:schedule.run_pending()time.sleep(1)

第三步:设置 SMTP 服务器

  • Gmail SMTP 服务器示例:
    • SMTP 服务器: smtp.gmail.com
    • 端口: 587

如果你使用 Gmail 作为 SMTP 服务器,你需要启用“低安全性应用访问”或者使用应用专用密码。

第四步:运行脚本

将上述脚本保存为 send_email_report.py 文件,然后在终端运行:

python send_email_report.py

这个脚本会每天在设定的时间(这里是每天的 9:00)发送一封电子邮件。如果你希望改变发送时间,可以修改 schedule.every().day.at("09:00").do(send_email) 这一行中的时间。

http://www.lryc.cn/news/356112.html

相关文章:

  • IT人的拖延——渴望成功与害怕成功的矛盾
  • 【全开源】场馆预定系统源码(ThinkPHP+FastAdmin+UniApp)
  • 音乐系统java在线音乐网站基于springboot+vue的音乐系统带万字文档
  • Python—面向对象小解(1)
  • 2024最新TikTok抖音国际版,tiktok正版免拔卡安装来了!
  • 【Python-OS】os.path.splitext()
  • 安卓开发--安卓使用Echatrs绘制折线图
  • 每日5题Day9 - LeetCode 41 - 45
  • 进程间通信的方式中,socket和消息队列的区别
  • 10. C++异步IO处理库和使用libevent实现高性能服务器
  • React里面useMemo和useCallBack的区别
  • css 渐变色边框
  • prompt提示词:如何让AI帮你提一个好问题
  • 若依ruoyi-vue element-ui 横向滚动条 动态横向滚动条
  • CET-4 听力高频词
  • ARM鲲鹏920-oe2309-caffe
  • 这款网站测试工具,炫酷且强大!【送源码】
  • 成功案例(IF=7.4)| 代谢组+16s联合分析助力房颤代谢重构的潜在机制研究
  • 【LeetCode:496. 下一个更大元素 I + 单调栈】
  • 软考案例题总结
  • 第二证券炒股知识:股票破发后怎么办?
  • Angular中,@HostListener装饰器
  • lammps案例:reaxff势模拟Fe(OH)3高温反应过程
  • 基于springboot实现政府管理系统项目【项目源码+论文说明】
  • 5.28_Java语法_运算符,接收键盘数据
  • 【数据分析】Numpy和Pandas库基本用法及实例--基于Japyter notebook实现
  • 【网络协议】应用层协议HTTPS
  • java nio FileChannel堆内堆外数据读写全流程分析及使用(附详细流程图)
  • 微服务架构-分支微服务设计模式
  • 关于Vue本地图片转file传到后端服务器(不通过组件上传)