Frage

Gibt es eine bestehende Plug-in täglich zu produzieren oder wöchentlichen E-Mails in Django zu verdauen? (Wir wollen viele kleine Meldungen in eine E-Mail kombinieren, anstatt die Mühe Menschen die ganze Zeit.)

Django-Mailer behauptet, dies zu unterstützen, aber ich habe gehört, dass es nicht wirklich.

War es hilfreich?

Lösung

Es gibt django-Mailer App von denen ich bis jetzt nicht bekannt war, so die Antwort unten Details meinen eigenen Ansatz.

Der einfachste Fall wird nicht verlangt viel:

setzen Sie diese in Ihre app/management/commands/send_email_alerts.py, dann einen Cron-Job einrichten, diesen Befehl auszuführen einmal pro Woche mit python manage.py send_email_alerts (alle Pfade müssen in der Umgebung natürlich für manage.py eingestellt werden Ihre App-Einstellungen aufzuheben)

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

Aber wenn Sie den Überblick behalten müssen, was jeder Benutzer eine E-Mail und wie oft, einige zusätzliche Code benötigt werden. Hier ist ein homegrown Beispiel . Vielleicht kann das ist, wo django-Mailer in den Lücken füllen.

Andere Tipps

Ich habe gerade die title="django-digested freigegeben django-verdaute Paket PyPI. Es unterstützt sofortige Benachrichtigungen, Tages- und Wochenübersichten und individuelle Präferenzen für verschiedene Gruppen von Updates.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top