2017-06-02 61 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'行。