欢迎访问宙启技术站
智能推送

使用schedule库实现定时发送邮件的功能

发布时间:2023-12-29 05:01:06

schedule是一个Python库,可以在指定的时间间隔或具体的时间点执行任务。使用schedule库实现定时发送邮件的功能可以分为以下几个步骤:

1. 安装schedule库:

在Python环境中运行pip install schedule命令来安装schedule库。

2. 导入所需的库和模块:

import schedule
import time
from datetime import datetime
import smtplib
from email.mime.text import MIMEText

3. 创建发送邮件的函数:

def send_email():
    # 设置邮件内容
    content = '这是一封定时发送的邮件'
    msg = MIMEText(content, 'plain', 'utf-8')
    msg['From'] = 'sender@example.com'
    msg['To'] = 'receiver@example.com'
    msg['Subject'] = '定时发送邮件示例'
    
    # 发送邮件
    try:
        smtpObj = smtplib.SMTP('localhost')
        smtpObj.sendmail('sender@example.com', 'receiver@example.com', msg.as_string())
        print("邮件发送成功")
    except smtplib.SMTPException as e:
        print("邮件发送失败:" + str(e))

4. 创建定时任务:

def schedule_task():
    schedule.every().day.at("09:00").do(send_email)

这段代码中的schedule.every().day.at("09:00")表示每天的09:00执行任务,你可以根据需要调整时间。

5. 启动定时任务:

while True:
    schedule.run_pending()
    time.sleep(1)

6. 完整代码示例:

import schedule
import time
from datetime import datetime
import smtplib
from email.mime.text import MIMEText

def send_email():
    # 设置邮件内容
    content = '这是一封定时发送的邮件'
    msg = MIMEText(content, 'plain', 'utf-8')
    msg['From'] = 'sender@example.com'
    msg['To'] = 'receiver@example.com'
    msg['Subject'] = '定时发送邮件示例'
    
    # 发送邮件
    try:
        smtpObj = smtplib.SMTP('localhost')
        smtpObj.sendmail('sender@example.com', 'receiver@example.com', msg.as_string())
        print("邮件发送成功")
    except smtplib.SMTPException as e:
        print("邮件发送失败:" + str(e))

def schedule_task():
    schedule.every().day.at("09:00").do(send_email)

while True:
    schedule.run_pending()
    time.sleep(1)

以上代码中,定时任务将在每天的09:00发送一封定时邮件。

要使用这个示例,请确保你的电脑上可以发送邮件。你可以通过调整send_email函数中的SMTP服务器和发件人、收件人地址来适应你的环境。