ITPub博客

首页 > 应用开发 > Python > python自动化脚本,定时发送电子邮件

python自动化脚本,定时发送电子邮件

原创 Python 作者:mingtian66 时间:2024-09-20 12:53:40 0 删除 编辑

创建一个 Python 自动化脚本以定时发送电子邮件可以通过 smtplib 和 schedule 库来实现。下面是一个简单的示例,展示如何设置一个定时任务来发送电子邮件。
1. 安装所需库

首先,确保你已经安装了 schedule 库。如果没有安装,可以使用以下命令:

bash

pip install schedule

2. 编写脚本

以下是一个完整的示例脚本,使用 Gmail 发送电子邮件。你需要将脚本中的发件人和收件人邮箱替换为你自己的信息。

python

import smtplib
import schedule
import time
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

def send_email():
    sender_email = "your_email@gmail.com"
    sender_password = "your_password"
    receiver_email = "recipient_email@gmail.com"
    
    subject = "定时发送的电子邮件"
    body = "这是通过 Python 自动化脚本发送的定时电子邮件。"

    # 创建邮件内容
    msg = MIMEMultipart()
    msg['From'] = sender_email
    msg['To'] = receiver_email
    msg['Subject'] = subject
    msg.attach(MIMEText(body, 'plain'))

    try:
        # 连接到 Gmail 的 SMTP 服务器
        server = smtplib.SMTP('smtp.gmail.com', 587)
        server.starttls()  # 启用 TLS
        server.login(sender_email, sender_password)  # 登录
        
        # 发送邮件
        server.send_message(msg)
        print("邮件发送成功!")
    except Exception as e:
        print(f"发送邮件时出错: {e}")
    finally:
        server.quit()

# 设置定时任务
schedule.every().day.at("10:30").do(send_email)  # 每天 10:30 发送邮件

print("定时任务已启动,等待发送邮件...")
while True:
    schedule.run_pending()
    time.sleep(1)

3. 注意事项

    Gmail 设置:如果你使用 Gmail 发送邮件,可能需要在 Gmail 设置中启用“允许不够安全的应用”选项,或者使用应用密码。
    发送频率:根据需要调整 schedule.every().day.at("10:30") 中的时间格式,可以设置为每小时、每周等。
    保护密码:不要在代码中硬编码密码,建议使用环境变量或配置文件管理敏感信息。

4. 运行脚本

将脚本保存为一个 .py 文件(如 send_email.py),然后在命令行中运行:

bash

python send_email.py

脚本将会在指定的时间自动发送电子邮件。你可以根据需要修改发送的内容和时间。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70040412/viewspace-3028511/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2024-08-07

  • 博文量
    589
  • 访问量
    602800