2009-11-27 2 views
6

Есть ли существующий плагин для создания ежедневных или еженедельных электронных писем в Django? (Мы хотим объединить много мелких уведомлений в одно электронное письмо, а не беспокоить людей все время.)Django электронный дайджест

Django-mailer утверждает, что это поддерживает, но мне говорят, что это не так.

+0

принадлежит к суперпользователю? – falstro

+0

Почему, Django не является уровнем пользовательского уровня. Это код. –

+0

Да, я просто думаю, может быть, это использование кода, а не его изменение. Просто спрашиваю. – falstro

ответ

4

django-mailer приложение, о котором я не знал до сих пор, поэтому нижеприведенный ответ описывает мой собственный подход.

Самого простой случай не потребует много:

положить это в ваш app/management/commands/send_email_alerts.py, а затем настроить хроны, чтобы запустить эту команду один раз в неделе с 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. Он поддерживает мгновенные уведомления, ежедневные и еженедельные дайджесты и индивидуальные предпочтения для разных групп обновлений.