【问题标题】:How to send weekly scheduled emails in Django如何在 Django 中发送每周预定的电子邮件
【发布时间】:2022-01-02 22:18:48
【问题描述】:

我喜欢每周五为我的用户发送预定的电子邮件。 我正在使用 Pythonanywhere,所以我不能使用 Celery,因为 PA 可以使用它。我喜欢使用 PA 的任务功能,它不能安排每周任务,所以它应该每天检查是否是星期五。 我开始编写一个函数,但我没有那么有经验和卡住。如果它没有任何我点击按钮触发函数的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(???)

如果您能帮助我,请提前感谢您!

【问题讨论】:

  • 这个答案可能会有所帮助。 stackoverflow.com/questions/46517613/…
  • 如果你想将它用作 PythonAnywhere 的计划任务并有权访问你的 Django Web 应用程序的东西,我建议将其编写为可以作为任务运行的管理命令manage.py .我认为您不需要渲染任何东西,并且作为计划任务它会自动运行,因此您也不需要点击任何按钮。
  • 好的,谢谢!你们都给我写了好东西:)

标签: python django function email


【解决方案1】:

你可以使用django-q,

https://django-q.readthedocs.io/en/latest/

它易于使用,并带有 django 管理面板集成, 您必须单独运行 qcluster 服务器并使用 crontab 字段来创建 cron 作业。在每个星期五 11:00 创建作业。使用

0 11 * * 5

在 django 管理面板中的 crontab 字段上,或者您也可以通过代码创建,按照教程进行操作。

【讨论】:

    猜你喜欢
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-18
    • 2020-05-03
    • 2018-07-24
    • 1970-01-01
    • 2020-01-24
    相关资源
    最近更新 更多