Django 电子邮件摘要

Posted

技术标签:

【中文标题】Django 电子邮件摘要【英文标题】:Django email digest 【发布时间】:2010-12-20 23:00:03 【问题描述】:

是否有现有的插件可以在 Django 中生成每日或每周摘要电子邮件? (我们希望将许多小通知合并到一封电子邮件中,而不是一直打扰人们。)

Django-mailer 声称支持这一点,但我被告知并不支持。

【问题讨论】:

为什么,Django 不是用户级别的东西。这是代码。 是的,我只是在想,也许这是关于使用代码,而不是修改它。只是问问。 【参考方案1】:

我刚刚向 PyPI 发布了 django-digested 包。它支持即时通知、每日和每周摘要,以及针对不同更新组的个人偏好。

【讨论】:

【参考方案2】:

有一个 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 可以填补的空白。

【讨论】:

以上是关于Django 电子邮件摘要的主要内容,如果未能解决你的问题,请参考以下文章

如何接收来自 Firebase Analytics 的每日摘要电子邮件?

在 Django 中发送批量电子邮件

为啥无法收到电子邮件(python、gmail、django)?

Django - 使用 django-mailer 发送批量邮件

django 使用 django-registration 以 html 格式发送电子邮件

Django 电子邮件服务