2017-06-02 58 views
0

工作我写这个代码 settings.pysend_mail未在Django

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' 
EMAIL_HOST='smtp.gmail.com' 
EMAIL_PORT=587 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = '**********' 
DEFAULT_FROM_EMAIL = '[email protected]' 
EMAIL_USE_TLS = True 

views.py

def email(request): 
    if request.method == 'GET': 
     form = ContactForm() 
    else: 
     form = ContactForm(request.POST) 
     if form.is_valid(): 
      subject = form.cleaned_data['subject'] 
      from_email = form.cleaned_data['from_email'] 
      message = form.cleaned_data['message'] 
      try: 
       send_mail(subject, message, from_email ['[email protected]']) 
      except BadHeaderError: 
       return HttpResponse('Invalid header found.') 
      return redirect('success') 
    return render(request, "email.html", {'form': form}) 


def success(request): 
    email = EmailMessage('Hello', 'how are you?', to=['[email protected]']) 
    email.send() 
    send_mail('Test mail', 'This is a test', '[email protected]' ['[email protected]'], fail_silently=False) 
    return HttpResponse('Success! Thank you for your message.') 

在成功(请求),我添加一个比特的冗余码尝试以不同的方式发送邮件,只是为了检查其他方法是否正在工作。它没有任何工作。任何人都可以告诉我为什么?我有点困惑。密码是正确的,我允许为Gmail的安全性较低的应用程序。此程序不会引发任何错误。如果电子邮件(请求)告诉它已成功发送邮件,则会调用成功页面。我使用Django 1.11和Python 2.7 三江源提前:)

+0

当[解锁验证码](https://accounts.google.com/DisplayUnlockCaptcha)时发生了什么? –

回答

1

控制台后端不发送电子邮件真正:

而是发出真正的电子邮件的控制台后端刚刚写电子邮件,这将是发送到标准输出。默认情况下,控制台后端写入标准输出。

https://docs.djangoproject.com/en/1.11/topics/email/#console-backend

根据您如何设置日志记录,以send_mail发应该是在某个日志文件(或没有,如果你不记录标准输出)的电子邮件。

你将不得不修改settings.py这样的:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 
+0

我的不好。我没有注意到它应该是smtp而不是电子邮件。非常感谢 –

0

当值传递给你的send_mail功能你忘记from_email后加上一个逗号,第一:

send_mail(subject, message, from_email, ['[email protected]']) 

和第二次后'[email protected]'

send_mail('Test mail', 'This is a test', '[email protected]', ['[email protected]'], fail_silently=False) 

你也有从settings.py文件中删除EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'行。