我在Django版本1.10上发送邮件时遇到问题,下面的错误可以出现在我的控制台中。
错误
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
gaierror:[Errno -2]名称或服务未知
我的代码是,
settings.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
views.py
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')
答案 0 :(得分:0)
您是否为安全性较低的应用启用了Access?如果没有,
转到您的Google帐户设置,找到安全性 - >帐户权限 - >访问安全性较低的应用,启用此选项。
答案 1 :(得分:0)
试试这个:
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'
后者将使用终端以文本形式显示您的电子邮件。
如果您不想使用终端查看电子邮件,而是发送真实的电子邮件,请从EMAIL_BACKEND
中删除Settings.py
变量。
答案 2 :(得分:0)
我认为你有:
DEFAULT_EMAIL_FROM = 'mymail@gmail.com'
代替:
DEFAULT_FROM_EMAIL = 'mymail@gmail.com'