質問

Djangoで毎日または毎週ダイジェストメールを生成する既存のプラグインはありますか? (多くの小さな通知を1つのメールにまとめたいので、常に人を悩ませることはありません。)

Django-mailerはこれをサポートすると主張していますが、実際にはそうではないと言われています。

役に立ちましたか?

解決

django-mailer アプリがありますが、今まで気付いていなかったので、以下の答えは私自身のアプローチの詳細です。

最も単純なケースではそれほど必要ありません:

これを app / management / commands / send_email_alerts.py に入れてから、 python manage.py send_email_alerts でこのコマンドを週に1回実行するようにcronジョブを設定します(もちろん、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がギャップを埋めることができます。

他のヒント

django-digested をリリースしましたa> PyPIへのパッケージ。インスタント通知、毎日および毎週のダイジェスト、さまざまな更新グループの個別の設定をサポートしています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top