【问题标题】:gaierror while using send_mail in django behind proxy在代理后面的django中使用send_mail时出现gaierror
【发布时间】:2016-04-01 03:34:56
【问题描述】:

我试图使用 gmail 从我的 Django 应用程序发送电子邮件。我将这些电子邮件设置添加到settings.py

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'myemail@gmail.com'
EMAIL_HOST_PASSWORD = 'mypassword'
EMAIL_PORT = 587
EMAIL_USE_TLS = True

但它会抛出这个名称解析错误:

Traceback (most recent call last):
File "/usr/lib/python3.4/code.py", line 90, in runcode
  exec(code, self.locals)
File "<console>", line 1, in <module>
File "/usr/local/lib/python3.4/dist-packages/Django-1.8.7-py3.4.egg/django/core/mail/__init__.py", line 62, in send_mail
  return mail.send()
File "/usr/local/lib/python3.4/dist-packages/Django-1.8.7-py3.4.egg/django/core/mail/message.py", line 303, in send
  return self.get_connection(fail_silently).send_messages([self])
File "/usr/local/lib/python3.4/dist-packages/Django-1.8.7-py3.4.egg/django/core/mail/backends/smtp.py", line 100, in send_messages
  new_conn_created = self.open()
File "/usr/local/lib/python3.4/dist-packages/Django-1.8.7-py3.4.egg/django/core/mail/backends/smtp.py", line 58, in open
  self.connection = connection_class(self.host, self.port, **connection_params)
File "/usr/lib/python3.4/smtplib.py", line 242, in __init__
  (code, msg) = self.connect(host, port)
File "/usr/lib/python3.4/smtplib.py", line 321, in connect
  self.sock = self._get_socket(host, port, self.timeout)
File "/usr/lib/python3.4/smtplib.py", line 292, in _get_socket
  self.source_address)
File "/usr/lib/python3.4/socket.py", line 494, in create_connection
  for res in getaddrinfo(host, port, 0, SOCK_STREAM):
File "/usr/lib/python3.4/socket.py", line 533, in getaddrinfo
  for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -2] Name or service not known

注意:我在代理后面工作。

另外,我尝试通过socket连接google.com:

import socket
socket.gethostbyname('www.google.com')

它抛出:

[Errno 11001] getaddrinfo failed

【问题讨论】:

  • 只需克服完全相同的问题。您找到任何解决方法了吗?
  • 我拼错了,EMAIL_HOST = 'smtp.gamil.com' 的意思是:'smtp.gmail.com'。这就是我收到此错误的原因

标签: python django proxy sendmail


【解决方案1】:
  1. 在 gmail.com 中启用 pop3
  2. 为 django 应用程序创建特定密码 (http://support.google.com/accounts/bin/answer.py?hl=en&answer=185833)

解决方案here

【讨论】:

  • 我已经启用了对不太安全的应用程序的访问和弹出。但它现在也不起作用。可能这种情况与在代理后面工作有关。
猜你喜欢
  • 1970-01-01
  • 2017-07-22
  • 1970-01-01
  • 2019-01-18
  • 2022-10-21
  • 2014-06-08
  • 2019-11-14
  • 2012-04-08
  • 1970-01-01
相关资源
最近更新 更多