是否有现成的插件可以在Django中生成每日或每周的摘要电子邮件? (我们希望将许多小通知合并到一封电子邮件中,而不是一直打扰人们。)
Django-mailer声称支持这一点,但我告诉它并不是真的。
答案 0 :(得分:4)
有django-mailer app我到目前为止还不知道,所以下面的答案详述了我自己的方法。
最简单的情况不需要太多:
将其放入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可以填补空白的地方。
答案 1 :(得分:3)
我刚刚将django-digested包发布给PyPI。它支持即时通知,每日和每周摘要,以及不同更新组的个人偏好。