Skip to main content
 首页 » 编程设计

python之在代理后面的 Django 中使用 send_mail 时出现错误

2025年05月04日33lyhabc

我正尝试使用 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 

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

此外,我尝试通过套接字连接到 google.com:

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

它抛出:

[Errno 11001] getaddrinfo failed 

请您参考如下方法:

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

解决方案 here