C'è l'app django-mailer di cui non ero a conoscenza fino ad ora, quindi la risposta sotto specifica il mio approccio.
Il caso più semplice, non richiede molto:
mettere questo nella tua app/management/commands/send_email_alerts.py
, quindi impostare un lavoro cron per eseguire questo comando una volta alla settimana con python manage.py send_email_alerts
(tutti i percorsi devono essere impostati in un ambiente, naturalmente, per manage.py per raccogliere le impostazioni dell'app)
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()
Ma se hai bisogno di tenere traccia di quello di e-mail ogni utente e ogni quanto tempo, sarà necessario un po 'di codice aggiuntivo. Ecco un homegrown example. Forse è lì che il django-mailer può colmare le lacune.
appartiene a superutente? – falstro
Perché, Django non è roba di livello utente. Questo è il codice. –
sì, sto solo pensando, forse si tratta di usare il codice, piuttosto che modificarlo. Solo per chiedere. – falstro