Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我想每天早上11点发一封电子邮件_Python_Django_Email - Fatal编程技术网

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) 我检查了这份文件,但找不到如何在

我想每天早上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)
我检查了这份文件,但找不到如何在指定时间发送电子邮件。

您需要在所需时间使用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
的微秒部分,这样只有秒需要匹配,然后循环休眠一秒钟,这样它就不会双重触发