使用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服务器和发件人、收件人地址来适应你的环境。
