不能用Django芹菜发送电子邮件

2024-09-30 14:38:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在我的django项目中使用芹菜和RabbitMQ发送电子邮件。 这是我在GitHub上的项目https://github.com/Loctarogar/Django-by-Example。 在我的任务.py文件类型admin@myshop.com但是我试着把它改成我真正的google邮件,但是没有效果。在

每次我遇到这个错误:

[2017-11-20 20:09:36,747: ERROR/ForkPoolWorker-4] Task orders.tasks.order_created[a8fe13ed-08dc-4971-82ff-f184e197ab8d] raised unexpected: ConnectionRefusedError(111, 'Connection refused')
Traceback (most recent call last):
  File "/home/morilon/dj/shop/lib/python3.5/site-packages/celery/app/trace.py", line 374, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/home/morilon/dj/shop/lib/python3.5/site-packages/celery/app/trace.py", line 629, in __protected_call__
    return self.run(*args, **kwargs)
  File "/home/morilon/dj/shop/myshop/orders/tasks.py", line 14, in order_created
    mail_sent = send_mail(subject, message, 'admin@myshop.com', [order.email])
  File "/home/morilon/dj/shop/lib/python3.5/site-packages/django/core/mail/__init__.py", line 62, in send_mail
    return mail.send()
  File "/home/morilon/dj/shop/lib/python3.5/site-packages/django/core/mail/message.py", line 348, in send
    return self.get_connection(fail_silently).send_messages([self])
  File "/home/morilon/dj/shop/lib/python3.5/site-packages/django/core/mail/backends/smtp.py", line 104, in send_messages
    new_conn_created = self.open()
  File "/home/morilon/dj/shop/lib/python3.5/site-packages/django/core/mail/backends/smtp.py", line 64, in open
    self.connection = self.connection_class(self.host, self.port, **connection_params)
  File "/usr/lib/python3.5/smtplib.py", line 251, in __init__
    (code, msg) = self.connect(host, port)
  File "/usr/lib/python3.5/smtplib.py", line 335, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/usr/lib/python3.5/smtplib.py", line 306, in _get_socket
    self.source_address)
  File "/usr/lib/python3.5/socket.py", line 711, in create_connection
    raise err
  File "/usr/lib/python3.5/socket.py", line 702, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

Tags: inpyselfsendhomelibpackagesline
2条回答

您的代码回购配置为使用控制台后端处理电子邮件,但您的回溯显示正在使用smtp后端。我想你已经改变了后端,这就是导致错误的原因。在

默认情况下,smtp后端在本地主机上查找smtp服务器。我猜你那里没有人在跑。在

如果你想通过gmail的smtp服务器发送邮件,你只需要在设置.py文件。See the django docs for what needs to be configured。请阅读gmail文档以了解要使用的确切的smtp主机地址。在

我也遇到了同样的问题,但我通过设置设置.py就像skulegirl说的,把这个加到我的设置.py在

电子邮件后端='核心.django邮件.后端.console.EmailBackend'

我希望这对你有帮助。在

相关问题 更多 >