Python 我想每天早上11点发一封电子邮件
我想每天早上11点用Python发送一封电子邮件。 但我不知道每天上午11点发邮件有多热。现在,我可以写一个代码来发送电子邮件了Python 我想每天早上11点发一封电子邮件,python,django,email,Python,Django,Email,我想每天早上11点用Python发送一封电子邮件。 但我不知道每天上午11点发邮件有多热。现在,我可以写一个代码来发送电子邮件了 from django.core.mail import EmailMessage def send?email(self): email = EmailMessage(subject, message, None, email_to) email.send(fail_silently=False) 我检查了这份文件,但找不到如何在
from django.core.mail import EmailMessage
def send?email(self):
email = EmailMessage(subject, message, None, email_to)
email.send(fail_silently=False)
我检查了这份文件,但找不到如何在指定时间发送电子邮件。
您需要在所需时间使用cron(在Linux上)或at(在Windows上)
这个链接是一个很好的起点
您可以使用
高级Python调度程序
包。有了这个包,就可以在特定的时间轻松地执行特定的任务。您可以在此处收集更多信息如果您希望通过服务而不是其他提到的调度工具来调度此任务,我发现WayScript在调度代码运行时尤其有效。
一种粗糙但实用的方法是运行一个无限循环,检查时间,如果是上午11点,则触发函数
import datetime
import time
while True:
# Removing the date and microseconds from the full format
t = str(datetime.datetime.now())[11:-7]
if t == "11:00:00":
send_email()
# Wait for a second so it doesn't trigger the function more times
time.sleep(1)
您可以使用一个调度工具,比如
django-cron
:我对这段代码做了一些测试运行,每次都可以运行,但是是的,这很可能发生。最好还切断t
的微秒部分,这样只有秒需要匹配,然后循环休眠一秒钟,这样它就不会双重触发