'Django post-office setup

Perhaps it is just because I've never set up an e-mail system on Django before, or maybe I'm missing it... but does anyone have any insight on how to properly configure django post-office for sending queued e-mails?

I've got a mailing list of 1500 + people, and am hosting my app on heroku - using the standard email system doesn't work because I need to send customized emails to each user, and to connect to the server one by one leads to a timeout.

I've installed django-post_office via pip install, installed the app in settings.py, I've even been able to get an email to send by going:

mail.send(['recipient'],'sender',subject='test',message='hi there',priority='now')

However, if I try to schedule for 30 seconds from now let's say:

nowtime = datetime.datetime.now()
sendtime = nowtime + datetime.timedelta(seconds=30)

and then

mail.send(['recipient'],'sender',subject='test',message='hi there',scheduled_time=sendtime)

Nothing happens... time passes, and the e-mail is still listed as queued, and I don't receive any emails.

I have a feeling it's because I need to ALSO have Celery / RQ / Cron set up??? But the documentation seems to suggest that it should work out of the box. What am I missing?

Thanks folks



Solution 1:[1]

Actually, you can find this in the documentation (at the time I'm writing this comment):

Usage

If you use post_office’s EmailBackend, it will automatically queue emails sent using django’s send_mail in the database.

To actually send them out, run python manage.py send_queued_mail. You can schedule this to run regularly via cron:

* * * * * (/usr/bin/python manage.py send_queued_mail >> send_mail.log 2>&1)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 user2111922