如何在 Django 中发送每周预定的电子邮件
How to send weekly scheduled emails in Django
我喜欢每周五为我的用户发送预定的电子邮件。
我正在使用 Pythonanywhere,所以我不能使用 Celery,因为 PA 可以使用它。我喜欢使用 PA 的 Task 功能,它不能安排每周任务,所以它应该每天检查是否是星期五。
我开始写一个函数,但我没有那么有经验并且卡住了。如果它没有任何 html 我点击按钮触发该功能,我不知道如何编写该功能。
我在我的项目目录下创建了一个weekly_email_mm.py
文件:
import datetime
from django.core.mail import send_mail
from django.shortcuts import render
today = datetime.date.today()
weekday = today.weekday()
def send_mm_email(???):
subject = 'Hello'
message = 'Hi there'
if (weekday == 4):
send_mail(
subject,
message,
'something@from.com',
['user@xy.com'],
fail_silently=False,
)
print('Friday, mails sent')
else:
print('Not Friday')
return render(???)
如果你能帮助我,提前谢谢你!
你可以使用django-q,
https://django-q.readthedocs.io/en/latest/
它易于使用,并带有 django 管理面板集成,
你必须单独 运行 qcluster 服务器并使用 crontab 字段来创建 cron job.To 在每个星期五 11:00 .use
创建一个作业
0 11 * * 5
在 django 管理面板的 crontab 字段上,或者您也可以通过代码创建,按照教程进行。
我喜欢每周五为我的用户发送预定的电子邮件。 我正在使用 Pythonanywhere,所以我不能使用 Celery,因为 PA 可以使用它。我喜欢使用 PA 的 Task 功能,它不能安排每周任务,所以它应该每天检查是否是星期五。 我开始写一个函数,但我没有那么有经验并且卡住了。如果它没有任何 html 我点击按钮触发该功能,我不知道如何编写该功能。
我在我的项目目录下创建了一个weekly_email_mm.py
文件:
import datetime
from django.core.mail import send_mail
from django.shortcuts import render
today = datetime.date.today()
weekday = today.weekday()
def send_mm_email(???):
subject = 'Hello'
message = 'Hi there'
if (weekday == 4):
send_mail(
subject,
message,
'something@from.com',
['user@xy.com'],
fail_silently=False,
)
print('Friday, mails sent')
else:
print('Not Friday')
return render(???)
如果你能帮助我,提前谢谢你!
你可以使用django-q,
https://django-q.readthedocs.io/en/latest/
它易于使用,并带有 django 管理面板集成, 你必须单独 运行 qcluster 服务器并使用 crontab 字段来创建 cron job.To 在每个星期五 11:00 .use
创建一个作业0 11 * * 5
在 django 管理面板的 crontab 字段上,或者您也可以通过代码创建,按照教程进行。