前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 脚本来自动发送每日电子邮件报告

Python 脚本来自动发送每日电子邮件报告

作者头像
未名编程
发布2024-10-12 20:59:44
1060
发布2024-10-12 20:59:44
举报
文章被收录于专栏:Python
  1. 安装必要的库 我们将使用 smtplib 发送邮件,以及 email.mime 来创建电子邮件内容。另外,为了让脚本自动定时运行,可以使用操作系统的计划任务工具(如 Linux 的 cron 或 Windows 的 Task Scheduler)。
  2. 创建邮件内容 使用 MIMEText 来创建纯文本电子邮件,或使用 MIMEMultipart 来添加附件或 HTML 内容。
  3. 发送电子邮件 使用 smtplib.SMTP 连接到电子邮件服务器并发送邮件。
  4. 计划自动运行脚本 在 Linux 上使用 cron,在 Windows 上使用 Task Scheduler。
Step 1: 安装所需库

有些 Python 安装可能没有 smtplibemail 模块。它们是 Python 标准库的一部分,不需要额外安装,但如果你想发送 HTML 报告或者添加其他依赖库,可以使用 pip 安装所需库。

代码语言:javascript
复制
pip install email
Step 2: 编写发送邮件的脚本
代码语言:javascript
复制
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from datetime import datetime

# 邮件服务器的设置
SMTP_SERVER = "smtp.example.com"  # 例如Gmail的SMTP服务器: smtp.gmail.com
SMTP_PORT = 587
EMAIL = "your_email@example.com"  # 发送邮件的邮箱
PASSWORD = "your_password"        # 邮箱密码或应用授权码

# 收件人的邮箱
TO_EMAIL = "recipient@example.com"

def send_email(subject, body):
    # 创建MIME消息
    msg = MIMEMultipart()
    msg['From'] = EMAIL
    msg['To'] = TO_EMAIL
    msg['Subject'] = subject

    # 添加邮件正文内容
    msg.attach(MIMEText(body, 'plain'))

    try:
        # 连接到SMTP服务器并发送邮件
        server = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
        server.starttls()  # 启用TLS加密
        server.login(EMAIL, PASSWORD)
        text = msg.as_string()
        server.sendmail(EMAIL, TO_EMAIL, text)
        server.quit()

        print(f"邮件发送成功: {subject}")

    except Exception as e:
        print(f"邮件发送失败: {str(e)}")


def daily_report():
    # 生成每日报告的内容
    today = datetime.now().strftime("%Y-%m-%d")
    subject = f"Daily Report for {today}"
    body = f"This is the daily report for {today}."

    # 发送报告邮件
    send_email(subject, body)


if __name__ == "__main__":
    daily_report()
Step 3: 运行脚本前的设置

邮箱配置: 你需要使用自己的电子邮件服务提供商的 SMTP 设置来替换代码中的 SMTP_SERVERSMTP_PORT,并输入你的电子邮件和密码。注意,有些邮件提供商(如 Gmail)可能需要生成一个应用专用密码而不是直接使用你的邮箱密码。

Gmail 的配置示例:

代码语言:javascript
复制
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587
EMAIL = "your_email@gmail.com"
PASSWORD = "your_app_specific_password"

允许安全应用访问: 如果你使用 Gmail 发送电子邮件,你可能需要启用 “允许不太安全的应用程序访问” 或者创建一个 “应用程序专用密码”。

Step 4: 设置自动发送(计划任务)

Linux - 使用 cron

打开 crontab 编辑器:

代码语言:javascript
复制
crontab -e

添加以下条目来每天在固定时间运行脚本(例如,每天早上8点):

代码语言:javascript
复制
0 8 * * * /usr/bin/python3 /path/to/your/script.py

Windows - 使用 Task Scheduler:

  1. 打开任务计划程序,创建一个新的任务。
  2. 在触发器中,设置为每日运行。
  3. 在操作中,选择“启动程序”,并输入 python 解释器的路径和脚本的路径。

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=307etcpbyuuc8

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Step 1: 安装所需库
  • Step 2: 编写发送邮件的脚本
  • Step 3: 运行脚本前的设置
  • Step 4: 设置自动发送(计划任务)
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档