Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django发送邮件[Errno-2]名称或服务未知_Django_Email - Fatal编程技术网

Django发送邮件[Errno-2]名称或服务未知

Django发送邮件[Errno-2]名称或服务未知,django,email,Django,Email,我在Django 我通过以下链接设置gmail: 我在网上尝试了各种解决方案,但仍然得到了[Errno-2] 我发现有人说这是因为DNS问题,有人能告诉我我的代码有什么问题吗?有什么解决办法吗 views.py import django from django import settings from django.core.mail import send_mail def contact(request): send_mail('subject','message',set

我在
Django

我通过以下链接设置gmail:

我在网上尝试了各种解决方案,但仍然得到了
[Errno-2]

我发现有人说这是因为DNS问题,有人能告诉我我的代码有什么问题吗?有什么解决办法吗

views.py

import django
from django import settings
from django.core.mail import send_mail

def contact(request):
    send_mail('subject','message',settings.EMAIL_HOST_USER,['zwt467875460@gmail.com'],fail_silently = False)
    return HttpResponseRedirect('/contact/thanks')
def thanks(request): 
    return HttpResponse('thanks!')
设置.py

#email config
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gamil.com'
EMAIL_PORT = 587
EMAIL_HOST_USER='zwt467875460@gmail.com'
EMAIL_HOST_PASSWORD='*********'        #my gmail password
EMAIL_USER_TLS = True
DEFAULT_FORM_EMAIL = EMAIL_HOST_USER
ACCOUNT_EMAIL_VERIFICATION = 'none'
回溯错误

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/Django-1.10.6-py2.7.egg/django/core/handlers/exception.py", line 42, in inner
response = get_response(request)
  File "/usr/local/lib/python2.7/dist-packages/Django-1.10.6-py2.7.egg/django/core/handlers/base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
  File "/usr/local/lib/python2.7/dist-packages/Django-1.10.6-py2.7.egg/django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/wenting/WTDjango/mysite/books/views.py", line 30, in contact
send_mail('subject','message',settings.EMAIL_HOST_USER,['zwt467875460@gmail.com'],fail_silently = False)
  File "/usr/local/lib/python2.7/dist-packages/Django-1.10.6-py2.7.egg/django/core/mail/__init__.py", line 62, in send_mail
return mail.send()
  File "/usr/local/lib/python2.7/dist-packages/Django-1.10.6-py2.7.egg/django/core/mail/message.py", line 342, in send
return self.get_connection(fail_silently).send_messages([self])
  File "/usr/local/lib/python2.7/dist-packages/Django-1.10.6-py2.7.egg/django/core/mail/backends/smtp.py", line 100, in send_messages
new_conn_created = self.open()
  File "/usr/local/lib/python2.7/dist-packages/Django-1.10.6-py2.7.egg/django/core/mail/backends/smtp.py", line 58, in open
self.connection = connection_class(self.host, self.port, **connection_params)
  File "/usr/lib/python2.7/smtplib.py", line 256, in __init__
(code, msg) = self.connect(host, port)
  File "/usr/lib/python2.7/smtplib.py", line 316, in connect
self.sock = self._get_socket(host, port, self.timeout)
  File "/usr/lib/python2.7/smtplib.py", line 291, in _get_socket
return socket.create_connection((host, port), timeout)
  File "/usr/lib/python2.7/socket.py", line 557, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
gaierror: [Errno -2] Name or service not known
[15/Apr/2017 18:45:56] "GET /contact/ HTTP/1.1" 500 102295
在Django错误页面中:

Exception Location:     /usr/lib/python2.7/socket.py in create_connection, line 557

我想我的问题是Gmail认为我没有固定或正确的DNS 所以我不能创建套接字

然后我尝试了sendmail: 安装sendmail、sendmail cf并对其进行配置后

我试过:

 echo "Subject: sendmail test" | sendmail -v zwt467875460@gmail.com
输出是(我省略了发送细节):

354输入邮件,在一行中以“.”结束
>>> .
050 ... 正在通过中继连接到smtp.gmail.com。。。
050 ... 延迟:smtp.gmail.com拒绝连接
250 2.0.0 v3GKMtLU003555消息接受用于deliveryzwt467875460@gmail.com... 已发送(v3GKMtLU003555消息已接受发送)
关闭与[127.0.0.1]的连接
>>>退出
221 2.0.0 localhost.localdomain关闭连接

smtp.gmail.com拒绝连接检查您的gmail帐户设置是否启用了IMAP/POP。 同时检查是否已启用对“不太安全的应用程序”的访问。
如果没有,请点击链接:

您在
'smtp.gamil.com'
以及
DEFAULT\u FORM\u EMAIL
中有一个输入错误-而且您在视图中似乎是直接从django的核心设置导入的,您可能希望引用您的应用程序设置文件。谢谢,但我不认为我在smtp.gmail.com以及DEFAULT\u FORM\u EMAIL中有输入错误,也许那是因为我没有领会你的意思?谢谢,但正如我提到的,我已经在我的gmail帐户中设置了IMAP/POP。你是否专门为sendmail设置了DNS?虽然我认为在这种情况下我不需要它。。。
354 Enter mail, end with "." on a line by itself
>>> .
050 <zwt467875460@gmail.com>... Connecting to smtp.gmail.com via relay...
050 <zwt467875460@gmail.com>... Deferred: Connection refused by smtp.gmail.com
250 2.0.0 v3GKMtLU003555 Message accepted for deliveryzwt467875460@gmail.com... Sent (v3GKMtLU003555 Message accepted for delivery)
Closing connection to [127.0.0.1]
>>> QUIT
221 2.0.0 localhost.localdomain closing connection