Django电子邮件摘要

时间:2009-11-27 11:14:07

标签: django email django-email django-mailer

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

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

2 个答案:

答案 0 :(得分:4)

django-mailer app我到目前为止还不知道,所以下面的答案详述了我自己的方法。

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

将其放入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()

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

答案 1 :(得分:3)

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