2016-10-09 3 views
0

Я пытаюсь отправить почту в проект django в течение нескольких дней. У меня есть документация от djangoproject.com, но это не работает для меня. мой settings.py содержит следующие строки кода для отправки почты:Как исправить django отправить почту?

EMAIL_USE_TLS = True 
EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_PORT = 587 
EMAIL_HOST_PASSWORD = '**********' #my gmail account's password 
EMAIL_HOST_USER = '[email protected]' 

мой views.py содержит эти строки для ContactForm:

def contactForm(request): 
    form = LocalContactForm(request.POST or None) 
    if form.is_valid(): 
     send_mail(
'Subject here', 
'Here is the message.', 
settings.EMAIL_HOST_USER, 
['[email protected]'], 
fail_silently=False, 
) 
     return HttpResponseRedirect('thanks') 
    context = {"page":"contact_form", "title":"Contact with us", "form":form} 
    return render(request, 'form.html', context) 

В то время как я пытаюсь отправить почту через мою форму: Это показать:

SMTPAuthenticationError at /contact/ 
(534, '5.7.14 <https://accounts.google.com/signin/continue?  sarp=1&scc=1&plt=AKgnsbtZ\n5.7.14 4CcZKxu-As7S5tfd-3YTAz6XMdwLYcJKWk7_bViejaO8v_-mx-aD8PLO5zixLUMbTv38LY\n5.7.14 qE3ifOl5aXJOXaOVN5jU9Tl-HJVDj1_bc0n9nJ4PHERsBsyu8L0JRr9rM3ED0TdFXLV3wl\n5.7.14 _GF3jCTuCHIydf-YXcFZidIIqrERHyAORvqYmuPs0qHd_rt3ecbJUBOIW9PvzOXxGBiXg2\n5.7.14 ehh9XhyakjWXfOEuJgbxiNBMdCIM0> Please log in via your web browser and\n5.7.14 then try again.\n5.7.14 Learn more at\n5.7.14 https://support.google.com/mail/answer/78754 ao5sm46546625pad.1 - gsmtp') 

Request Method:  POST 
Request URL: http://www.zellaic.com/contact/ 
Django Version:  1.10.1 
Exception Type:  SMTPAuthenticationError 
Exception Value:  

(534, '5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbtZ\n5.7.14 4CcZKxu-As7S5tfd-3YTAz6XMdwLYcJKWk7_bViejaO8v_-mx-aD8PLO5zixLUMbTv38LY\n5.7.14 qE3ifOl5aXJOXaOVN5jU9Tl-HJVDj1_bc0n9nJ4PHERsBsyu8L0JRr9rM3ED0TdFXLV3wl\n5.7.14 _GF3jCTuCHIydf-YXcFZidIIqrERHyAORvqYmuPs0qHd_rt3ecbJUBOIW9PvzOXxGBiXg2\n5.7.14 ehh9XhyakjWXfOEuJgbxiNBMdCIM0> Please log in via your web browser and\n5.7.14 then try again.\n5.7.14 Learn more at\n5.7.14 https://support.google.com/mail/answer/78754 ao5sm46546625pad.1 - gsmtp') 

Exception Location:  /usr/lib64/python2.7/smtplib.py in login, line 621 
Python Executable: /usr/local/bin/python 
Python Version:  2.7.5 
Python Path:  
['/home/showkatali/webapps/zellaic/lib/python2.7/Django-1.10.1-py2.7.egg', 
'/home/showkatali/webapps/zellaic', 
'/home/showkatali/webapps/zellaic/src', 
'/home/showkatali/webapps/zellaic/lib/python2.7', 
'/home/showkatali/lib/python2.7/pip-8.1.2-py2.7.egg', 
'/home/showkatali/lib/python2.7', 
'/usr/lib64/python27.zip', 
'/usr/lib64/python2.7', 
'/usr/lib64/python2.7/plat-linux2', 
'/usr/lib64/python2.7/lib-tk', 
'/usr/lib64/python2.7/lib-old', 
'/usr/lib64/python2.7/lib-dynload', 
'/usr/lib64/python2.7/site-packages', 
'/usr/lib64/python2.7/site-packages/PIL', 
'/usr/lib64/python2.7/site-packages/geos', 
'/usr/lib/python2.7/site-packages'] 

И в то время как я пытаюсь использовать эти строки в оболочке, это показать:

send_mail('subject', 'sometext', settings.EMAIL_HOST_USER, ['[email protected]'], fail_silently = False) 
Traceback (most recent call last): 
File "<console>", line 1, in <module> 
File "/home/endless/Desktop/project/webfaction/env/local/lib/python2.7/site- packages/django/core/mail/__init__.py", line 62, in send_mail 
return mail.send() 
File "/home/endless/Desktop/project/webfaction/env/local/lib/python2.7/site- packages/django/core/mail/message.py", line 342, in send 
return self.get_connection(fail_silently).send_messages([self]) 
File "/home/endless/Desktop/project/webfaction/env/local/lib/python2.7/site- packages/django/core/mail/backends/smtp.py", line 100, in send_messages 
new_conn_created = self.open() 
File "/home/endless/Desktop/project/webfaction/env/local/lib/python2.7/site- packages/django/core/mail/backends/smtp.py", line 67, in open 
self.connection.login(self.username, self.password) 

В данный момент, что мне делать? Нужна настройка моей учетной записи gmail?

+0

Вы видели это? http://stackoverflow.com/a/36532619/4974980 Есть настройки Gmail, которые необходимо настроить. –

+0

Я видел это после вашей рекомендации и также следовал инструкциям. Но то же самое. @JensAstrup –

+0

Это не полная трассировка стека – e4c5

ответ

1

Вот реализация для Gmail с помощью стандартных email и smtplib пакетов (обратите внимание на другой порт и хост в настройках):

//settings.py 
EMAIL_HOST = 'smtp.googlemail.com' #XXX 
EMAIL_PORT = 465     #XXX 
EMAIL_HOST_PASSWORD = '**********' 
EMAIL_HOST_USER = '***@gmail.com' 

Код:

import smtplib 

from email import encoders 
from email.mime.multipart import MIMEMultipart 
from email.mime.base import MIMEBase 
from email.mime.text import MIMEText 
from email.utils import COMMASPACE, formatdate 

from django.conf import settings 

#send_to is a list of recipient emails 
def send_mail(send_to, subject, body): 

    msg = MIMEMultipart() 
    msg['From'] = settings.EMAIL_HOST_USER 
    msg['To'] = COMMASPACE.join(send_to) 
    msg['Date'] = formatdate(localtime = True) 
    msg['Subject'] = subject 

    msg.attach(MIMEText(body)) 

    server_ssl = smtplib.SMTP_SSL(settings.EMAIL_HOST, settings.EMAIL_PORT) 
    server_ssl.ehlo() 
    server_ssl.login(settings.EMAIL_HOST_USER, settings.EMAIL_HOST_PASSWORD) 
    server_ssl.sendmail(settings.EMAIL_HOST_USER, send_to, msg.as_string()) 
    server_ssl.close() 
Смежные вопросы