Python 无法在Django 1.10上发送电子邮件?

Python 无法在Django 1.10上发送电子邮件?,python,django,Python,Django,我在Django 1.10版上发送邮件时遇到问题,我的控制台中可能会出现以下错误 错误 for res in getaddrinfo(host, port, 0, SOCK_STREAM): gaierror:[Errno-2]名称或服务未知 我的代码是, 设置.py EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST='smtp.gmail.com' EMAIL_PORT = 587 EMAI

我在Django 1.10版上发送邮件时遇到问题,我的控制台中可能会出现以下错误

错误

   for res in getaddrinfo(host, port, 0, SOCK_STREAM):

gaierror:[Errno-2]名称或服务未知

我的代码是,

设置.py

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST='smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'mymail@gmail.com'
EMAIL_HOST_PASSWORD = '************'
DEFAULT_EMAIL_FROM = 'mymail@gmail.com'
EMAIL_USE_TLS = True
from django.shortcuts import render
from django.core.mail import EmailMessage
from django.core.mail import send_mail

def contact(request):
    if request.method == 'POST':
        print "----------------"
        email = EmailMessage('title', 'body', to=['mymail@gmail.com'])
        email.send()
        print"--------------------stop"
        return render(request, 'contact/contact.html')
    return render(request, 'contact/contact.html')      
视图.py

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST='smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'mymail@gmail.com'
EMAIL_HOST_PASSWORD = '************'
DEFAULT_EMAIL_FROM = 'mymail@gmail.com'
EMAIL_USE_TLS = True
from django.shortcuts import render
from django.core.mail import EmailMessage
from django.core.mail import send_mail

def contact(request):
    if request.method == 'POST':
        print "----------------"
        email = EmailMessage('title', 'body', to=['mymail@gmail.com'])
        email.send()
        print"--------------------stop"
        return render(request, 'contact/contact.html')
    return render(request, 'contact/contact.html')      

您是否已启用对不太安全的应用程序的访问?如果没有,

转到您的Google帐户设置,查找安全性->帐户权限->访问不太安全的应用程序,启用此选项

试试这个:

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 465
EMAIL_HOST_USER = 'e-mail@gmail.com'
EMAIL_HOST_PASSWORD = '*******'
EMAIL_USE_SSL = True
我想补充一点:

if DEBUG:
    EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
后者将使用终端以文本形式显示您的电子邮件

如果您不想使用终端查看您的电子邮件,而想发送真实的电子邮件,请从
设置.py中删除
EMAIL\u BACKEND
变量。我想您已经:

DEFAULT_EMAIL_FROM = 'mymail@gmail.com'
相反:

DEFAULT_FROM_EMAIL = 'mymail@gmail.com'

您的电子邮件帐户是否已启用IMAP?我已启用此选项,但错误未清除,出现相同的错误。它不是Worling dude。可以在console-->MIME版本中打印以下详细信息:1.0内容类型:text/plain;charset=“utf-8”内容传输编码:7比特主题:标题来源:webmaster@localhost致:mymail@gmail.com日期:星期五,2017年2月24日10:18:02-0000邮件ID:正文-------------------------------------------------------------------从
Settings.py
中删除
EMAIL\u后端
变量,然后查看发生了什么。设置其他变量,如上面所示。gaierror:[Errno-2]名称或服务未知删除EMAIL_后端变量时可能会发生错误。因此,您的问题似乎是其他问题。试试这个: