是否有现有的插件可以在 Django 中生成每日或每周摘要电子邮件?(我们希望将许多小通知合并到一封电子邮件中,而不是一直打扰人们。)
Django-mailer 声称支持这一点,但我被告知并非如此。
是否有现有的插件可以在 Django 中生成每日或每周摘要电子邮件?(我们希望将许多小通知合并到一封电子邮件中,而不是一直打扰人们。)
Django-mailer 声称支持这一点,但我被告知并非如此。
到目前为止我还不知道有一个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()
但是,如果您需要跟踪每个用户的电子邮件内容和频率,则需要一些额外的代码。这是一个本土的例子。也许这就是 django-mailer 可以填补空白的地方。
我刚刚将django-digested包发布到 PyPI。它支持即时通知、每日和每周摘要以及不同更新组的个人偏好。