【发布时间】:2018-12-16 11:13:27
【问题描述】:
我有一个 Django 应用程序,当我在本地运行它时,一切正常。但是在 docker 容器中运行的生产环境中,它不能再发送邮件了,我得到了错误
Traceback (most recent call last):
File "/app/training/schema.py", line 167, in mutate
fail_silently=False,
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/mail/__init__.py", line 60, in send_mail
return mail.send()
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/mail/message.py", line 294, in send
return self.get_connection(fail_silently).send_messages([self])
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/mail/backends/smtp.py", line 103, in send_messages
new_conn_created = self.open()
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/mail/backends/smtp.py", line 63, in open
self.connection = self.connection_class(self.host, self.port, **connection_params)
File "/app/.heroku/python/lib/python3.6/smtplib.py", line 251, in __init__
(code, msg) = self.connect(host, port)
File "/app/.heroku/python/lib/python3.6/smtplib.py", line 336, in connect
self.sock = self._get_socket(host, port, self.timeout)
File "/app/.heroku/python/lib/python3.6/smtplib.py", line 307, in _get_socket
self.source_address)
File "/app/.heroku/python/lib/python3.6/socket.py", line 724, in create_connection
raise err
File "/app/.heroku/python/lib/python3.6/socket.py", line 713, in create_connection
sock.connect(sa)
OSError: [Errno 99] Cannot assign requested address
我正在使用这些设置:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'me@gmail.com'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 587
有人知道我做错了什么吗?
【问题讨论】:
-
Docker 容器是否打开了邮件端口?
-
这是什么端口?
-
在您的设置中:
EMAIL_PORT = 587 -
显然它与 docker 或 django 无关。我没有在托管该站点的服务器上打开邮件端口。