Всем доброго времени суток. Вообщем сделал отправку email сообщений через celery. Вот код:
# coding: utf-8
from django.utils.html import strip_tags
from django.template.loader import render_to_string
from django.core.mail import EmailMultiAlternatives
from schooledit3d.celery import app
@app.task(ignore_result=True)
def send_text_mail(subject, text_content, to):
message = EmailMultiAlternatives(subject=subject, body=text_content, to=to)
message.send()
@app.task(ignore_result=True)
def send_html_mail(subject, template_name, context, to):
html_content = render_to_string(template_name, context)
text_content = strip_tags(html_content)
message = EmailMultiAlternatives(subject=subject, body=text_content, to=to)
message.attach_alternative(html_content, "text/html")
message.send()
Создал в папке проекта файл celery.py, но при отправке сообщений в консольки появляется ошибка:
ImportError: No module named 'django.core.mail.backends.smtp
Запускаю воркера вот так вот:
python manage.py celery worker
Вызо делаю вот так вот:
kw = {
"subject": u"Приглашение на сайт",
"text_content": u"Здратвуйте, мы приглашаем вас на сайт",
"to": to if not isinstance(to, (list, tuple)) else [to, ],
}
send_text_mail.apply_async(kwargs=kw)
Народ, где ошибка?