2009-11-27 45 views
6

有一个现有的插件在日常生产或每周摘要电子邮件在Django? (我们希望许多小的通知合并为一个电子邮件,而不是麻烦的人所有的时间。)Django的电子邮件摘要

Django的邮件声称支持这一点,但我听说它不是真的。

+0

属于超级用户? – falstro 2009-11-27 11:19:32

+0

为什么,Django不是用户级别的东西。这是代码。 – 2009-11-27 11:24:18

+0

是啊,我只是在想,也许这是关于使用代码,而不是修改它。只是问问。 – falstro 2009-11-27 11:26:04

回答

4

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() 

但是,如果你需要跟踪的东西给每个用户以及多久电子邮件,将需要一些额外的代码。这里有一个本土的example。也许这就是django-mailer可以填补空白的地方。

3

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