Django 이메일 다이제스트
-
05-07-2019 - |
문제
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가 격차를 메울 수있는 곳 일 것입니다.
다른 팁
방금 릴리스되었습니다 장고 소화 PYPI에 패키지. 즉석 알림, 매일 및 주간 소화 및 다양한 업데이트 그룹에 대한 개별 선호도를 지원합니다.
제휴하지 않습니다 StackOverflow