2016-02-28 177 views
1

我想發送一個聯繫表格到我的Gmail。django發送聯繫表格到電子郵件引發錯誤

views.py:

def contact(request): 
errors = [] 
if request.method == 'POST': 
    if not request.POST.get('subject', ''): 
     errors.append('Enter a subject.') 
    if not request.POST.get('message', ''): 
     errors.append('Enter a message.') 
    if request.POST.get('email') and '@' not in request.POST['email']: 
     errors.append('Enter a valid e-mail address.') 
    if not errors: 
     send_mail(
      request.POST['subject'], 
      request.POST['message'], 
      request.POST.get('email', '[email protected]'), 
      ['[email protected]'], 
     ) 
     return HttpResponseRedirect('/contact/thanks/') 
return render(request, 'contact_form.html', 
    {'errors': errors}) 

contact_form.html:

</head> 
<body> 
<div> 
<h1>Contact us</h1> 

{% if errors %} 
    <ul> 
     {% for error in errors %} 
     <li>{{ error }}</li> 
     {% endfor %} 
    </ul> 
{% endif %} 

<form action="/contact/" method="post">{% csrf_token %}{% csrf_token %} 
    <p>Subject: <input type="text" name="subject"></p> 
    <p>Your e-mail (optional): <input type="text" name="email"></p> 
    <p>Message: <textarea name="message" rows="10" cols="50"> </textarea></p> 
    <input type="submit" value="Submit"> 
</form> 
</div> 
</body> 
</html> 

但是,當我提交表單它提出這個錯誤:

Exception Type:  ConnectionRefusedError 
Exception Value: [Errno 111] Connection refused 
Exception Location: /usr/lib/python3.4/socket.py in create_connection, line 503 

問題出在哪裏? 更多explanationm我用:

  • Django的版本:1.8.2
  • Python版本:3.4.3
+2

問題幾乎可以肯定地發生在與郵件服務器的連接上。你應該顯示你的電子郵件設置。 –

+0

對不起,我問,但django文件中的電子郵件設置在哪裏?我的意思是django中的目錄路徑在哪裏? – niloofar

+0

有時gmail阻止連接,假設它不是用戶,特別是來自雲服務器。他們會在幾個小時後向您發送一封電子郵件。 –

回答

1

應設置在settings.py文件正確的連接設置爲gmail:

EMAIL_USE_TLS = True 
EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_PORT = 587 
EMAIL_HOST_USER = 'your gmail account' 
EMAIL_HOST_PASSWORD = 'your gmail account password' 
DEFAULT_FROM_EMAIL = 'your gmail account' 
DEFAULT_TO_EMAIL = 'to email' 
+0

我添加這些: EMAIL_USE_TLS =真 EMAIL_HOST = 'smtp.gmail.com' EMAIL_PORT = 587 EMAIL_HOST_USER = '名爲myUsername' EMAIL_HOST_PASSWORD = '輸入mypassword' DEFAULT_FROM_EMAIL = '[email protected]' DEFAULT_TO_EMAIL ='電子郵件」 但它提出了這個: '異常類型:\t SMTPAuthenticationError' '異常值:\t(535,b'5.7.8用戶名和密碼不被接受,瞭解更多\ n5.7.8' – niloofar

+0

我想錯誤是不言自明的 - 你沒有在SMTP服務器上通過驗證uld設置正確的用戶名和密碼,這是你在gmail上註冊的真實用戶名和密碼。 – chem1st

相關問題