5

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

Django-mailer 声称支持这一点,但我被告知并非如此。

4

2 回答 2

3

到目前为止我还不知道有一个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 可以填补空白的地方。

于 2009-11-28T02:15:15.040 回答
3

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

于 2012-02-09T08:41:54.563 回答