用芹菜发送的电子邮件没有到达,但任务执行了,你能帮助我吗?

时间:2016-09-17 02:02:08

标签: python django rabbitmq celery django-celery

我使用 Python 3.5 Django 1.10 芹菜3.1.18 ,我正在开发 Windows 8

我关注了这本书Django by example,我完成了第7章。我创建了一个在线商店,当您完成订单时,应用程序必须向客户发送电子邮件。问题是我使用芹菜和兔子,我也安装了花来检查所有的任务。任务正确执行,但电子邮件永远不会到达。

这是我的tasks.py

from celery import task
from django.core.mail import send_mail
from .models import Pedido

@task
def pedido_creado(pedido_id):
    pedido = Pedido.objects.get(id=pedido_id)
    subject = 'Pedido nro. {}'.format(pedido.id)
    message = 'Querido {}, \n\nTu pedido fue exitosamente registrado. El id         de tu pedido es {}.'.format(pedido.nombre,pedido.id)
    mail_sent = send_mail(subject, message, 'admin@TiendaManualidades.com', [pedido.email], fail_silently=False,)
    return mail_sent

我的views.py

from django.shortcuts import render
from .models import ItemPedido
from .forms import FormCreaPedido
from carro_compras.carro_compras import Carro
from .tasks import pedido_creado
def crear_pedido(request):
    carro = Carro(request)
    if request.method == 'POST':
        form = FormCreaPedido(request.POST)
    if form.is_valid():
        pedido = form.save()
        for item in carro:
            ItemPedido.objects.create(pedido=pedido, producto=item['producto'], precio=item['precio'], cantidad=item['cantidad'])
        carro.limpiar()
        pedido_creado.delay(pedido.id)
        return render(request, 'pedidos/pedido/creado.html', {'pedido':pedido})
    else:
        form = FormCreaPedido()
    return render(request, 'pedidos/pedido/crear.html', {'carro':carro, 'form':form})

我的celery.py

import os
from celery import Celery
from django.conf import settings

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'TiendaManualidades.settings')

app = Celery('TiendaManualidades')

app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)

最后,您可以看到任务成功但电子邮件没有发送

图像 images

0 个答案:

没有答案