是否有现成的插件可以在Django中生成每日或每周的摘要电子邮件? (我们希望将许多小通知合并到一封电子邮件中,而不是一直打扰人们。)

Django-mailer声称支持这一点,但我告诉它并不是真的。

有帮助吗?

解决方案

django-mailer 应用程序至今我都不知道,所以下面的答案详述了我自己的方法。

最简单的情况不需要太多:

将此信息放入 app / management / commands / send_email_alerts.py ,然后设置一个cron作业,每周一次使用 python manage.py send_email_alerts 运行此命令(当然,必须在环境中设置所有路径,以便manage.py获取您的应用设置)

from django.core.management.base import NoArgsCommand
from django.db import connection
from django.core.mail import EmailMessage

class Command(NoArgsCommand):
    def handle_noargs(self,**options):
        try:
            self.send_email_alerts()
        except Exception, e:
            print e
        finally:
            connection.close()

    def send_email_alerts(self):         
        for user in User.objects.all():
            text = 'Hi %s, here the news' % user.username
            subject = 'some subject'
            msg = EmailMessage(subject, text, settings.DEFAULT_FROM_EMAIL, [user.email])
            msg.send()

但是,如果您需要跟踪每个用户发送电子邮件的频率以及频率,则需要一些额外的代码。这是一个本土的示例。也许这就是django-mailer可以填补空白的地方。

其他提示

我刚刚发布了 django-digested 包到PyPI。它支持即时通知,每日和每周摘要,以及不同更新组的个人偏好。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top