Существует 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 может заполнить пробелы.