pip install schedule
import schedule import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.header import Header import datetime
配置邮件信息
smtp_server = 'smtp.example.com' port = 587 # 或465(SSL) username = 'your_username' password = 'your_password' sender = 'your_email@example.com' receiver = 'recipient_email@example.com'
定义发送邮件的函数
def send_email(subject, content): message = MIMEMultipart() message['From'] = Header(sender, 'utf-8') message['To'] = Header(receiver, 'utf-8') message['Subject'] = Header(subject, 'utf-8')
message.attach(MIMEText(content, 'plain', 'utf-8'))
server = smtplib.SMTP(smtp_server, port)
server.starttls() # 启用TLS
server.login(username, password)
server.sendmail(sender, receiver, message.as_string())
server.quit()
定义定时任务
def job(): current_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') send_email(f'Timed Email at {current_time}', 'This is a timed email sent by Python.')
每5分钟执行一次任务
schedule.every(5).minutes.do(job)
运行定时任务
while True: schedule.run_pending() time.sleep(1)
确保替换smtp_server, port, username, password, sender, 和receiver为你的邮件服务器和账户信息。
这段代码使用了schedule库的every(n).minutes.do(job)方法来安排任务,其中n是间隔的分钟数。job函数会被定期调用,并发送一封邮件。你可以根据需要调整时间间隔(例如,使用every().hour.do(job)每小时执行一次)。