在Django中是否有一个插件可以生成每日或每周的摘要电子邮件?(我们希望将许多小通知合并到一封电子邮件中,而不是一直困扰人们。)
Django-mailer声称支持这一点,但我被告知它并不是真的支持。
发布于 2009-11-28 10:15:15
有一个我直到现在才知道的django-mailer应用,所以下面的答案详细介绍了我自己的方法。
即使是最简单的情况也不需要太多需求:
把它放到你的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可以填补空白的地方。
发布于 2012-02-09 16:41:55
我刚刚向PyPI发布了django-digested包。它支持即时通知、每日和每周摘要,以及不同更新组的个人首选项。
https://stackoverflow.com/questions/1808156
复制相似问题