使用 Django 和 Celery 发送电子邮件时出错



我正在尝试发送电子邮件,如果通过网络服务器执行,下面工作得很好。但是,当我尝试将任务发送到 Celery 时,我总是收到返回的断言错误,告诉我"to"需要是一个列表或元组。

不希望电子邮件通过网络服务器发送,因为它会减慢速度,所以如果有人可以帮助我解决这个问题,将不胜感激。

from celery import Celery
from django.core.mail import send_mail, EmailMessage
app = Celery('tasks', backend='amqp', broker='amqp://')
@app.task
def send_mail_link():
    subject = 'Thanks'
    message = 'body'
    recipients = ['someemail@gmail.com']
    email = EmailMessage(subject=subject, body=message, from_email='info@example.com', to=recipients)
    email.send()

我不是 100% 确定为什么,但我做了一些更改,它现在可以正常工作了。

我删除了send_mail的导入,并将方法的名称从 send_mail_link() 更改为 send_link() 。我还重新启动了芹菜工人,现在一切正常。

新代码是:

from celery import Celery
from django.core.mail import EmailMessage
app = Celery('tasks', backend='amqp', broker='amqp://')
@app.task
def send_link():
    subject = 'Thanks'
    message = 'body'
    recipients = ['someemail@gmail.com']
    email = EmailMessage(subject=subject, body=message, from_email='info@example.com', to=recipients)
    email.send()

希望将来有人会发现这有帮助。

相关内容

  • 没有找到相关文章