Djangoメールダイジェスト
-
05-07-2019 - |
質問
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へのパッケージ。インスタント通知、毎日および毎週のダイジェスト、さまざまな更新グループの個別の設定をサポートしています。
所属していません StackOverflow