Added email command
This commit is contained in:
parent
10d81fc058
commit
e9ef398b6a
24
newsletters/management/commands/sendnewsletters.py
Normal file
24
newsletters/management/commands/sendnewsletters.py
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
from django.db.models import Q
|
||||||
|
from django.core import mail
|
||||||
|
from django.core.management.base import BaseCommand
|
||||||
|
from django.utils import timezone
|
||||||
|
from django.utils.html import strip_tags
|
||||||
|
|
||||||
|
from OACPL import settings
|
||||||
|
from newsletters.models import Newsletter, Subscriber
|
||||||
|
|
||||||
|
|
||||||
|
class Command(BaseCommand):
|
||||||
|
help = 'Send out newsletter emails to subscribers'
|
||||||
|
|
||||||
|
def handle(self, *args, **options):
|
||||||
|
newsletters = Newsletter.objects.filter(Q(sent=False) & Q(publish__lte=timezone.now()))
|
||||||
|
subscribers = Subscriber.objects.all().values_list('email', flat=True)
|
||||||
|
print(f'Found {len(newsletters)} unsent newsletters')
|
||||||
|
print(f'Found {len(subscribers)} subscribers')
|
||||||
|
for newsletter in newsletters:
|
||||||
|
print(f'Sending newsletter: "{newsletter.subject}"')
|
||||||
|
mail.send_mail(newsletter.subject, strip_tags(newsletter.body), settings.EMAIL_HOST_USER, subscribers, html_message=newsletter.body)
|
||||||
|
newsletter.sent = True
|
||||||
|
newsletter.save()
|
||||||
|
print('Complete!')
|
Loading…
Reference in New Issue
Block a user