2015-07-09 3 views
17

Я пытался отправить почту с помощью smtp.gmail.com в Джанго 1,8Django 1.8 отправки почты с использованием протокола SMTP в Gmail

Мой settings.py содержит:

EMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 465
EMAIL_HOST_USER = 'sarath4coding'
EMAIL_HOST_PASSWORD = '*********'
DEFAULT_EMAIL_FROM = «са [email protected]»

from django.core import mail 
mail.send_mail('subject','message','[email protected]',['[email protected]']) 

Но получил эту ошибку

Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
    File "/home/manager/dj1.8/local/lib/python2.7/site-packages/django/core/mail/__init__.py", line 62, in send_mail 
    return mail.send() 
    File "/home/manager/dj1.8/local/lib/python2.7/site-packages/django/core/mail/message.py", line 303, in send 
    return self.get_connection(fail_silently).send_messages([self]) 
    File "/home/manager/dj1.8/local/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 100, in send_messages 
    new_conn_created = self.open() 
    File "/home/manager/dj1.8/local/lib/python2.7/site-packages/django_smtp_ssl.py", line 14, in open 
    self.connection.login(self.username, self.password) 
    File "/usr/lib/python2.7/smtplib.py", line 622, in login 
    raise SMTPAuthenticationError(code, resp) 
SMTPAuthenticationError: (534, '5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbuze\n5.7.14 2FDKQt2Dlo2vqFIvbr6DnBItwWvh9DChPwbeTZO66N91gzmiA437Vqs80cZ9-8u13vxq5a\n5.7.14 bVahzO_BQcZ53yKbJ-YbAlmFE1XIK7MfH97O0wI1lvzpTG_WAHuTIBF0HD1GA2icUoUemt\n5.7.14 ErZn4qb942aAIMG103FnrzLp4txXTbXC-wGLpaz5yvnUN5thahvv3-RiIVW8F1QddZKZlg\n5.7.14 qQKpqWw56zr1AcO2s_oaBEt556fQ> 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 kx14sm6579665pab.0 - gsmtp') 

Я попробовал все, что говорится в документе, и следуют многие предложенные решения.

как https://accounts.google.com/DisplayUnlockCaptcha, обеспечивающие низкие приложения безопасности и т.д.

, но я все еще получил ошибки

Может кто-нибудь сказать, как правильно настроить Django 1.8 для отправки почты с помощью Gmail.

+0

Я имел аналогичную конфигурацию, но с: 'EMAIL_HOST_USER = 'sarath4coding @ gmail.com'' и' EMAIL_PORT = 587' и 'EMAIL_USE_TLS = true' – Gocht

ответ

5

заменить в вашем файле settings.py:

EMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend' 

по

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

1

Это работает для меня:

settings.py

EMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend' 
EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_HOST_PASSWORD = 'test' 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_PORT = 587 
EMAIL_USE_TLS = True 

Unlock Защитный код: https://accounts.google.com/DisplayUnlockCaptcha

views.py

email = EmailMessage(
    'subject_message', 
    'content_message', 
    'sender smtp gmail' +'<[email protected]>', 
    ['[email protected]'], 
    headers = {'Reply-To': '[email protected]' } 
) 
email.send() 
7

Я испытал это и работал отлично в django 1.8:
сначала вы должны проверить this link, предоставленный Google, который вы сделали :)
обратите внимание, что по каким-то странным причинам, которые я не знаю, что вам нужно закодировать, как это в view.py or shell:

import django 
from django.conf import settings 
from django.core.mail import send_mail 

send_mail('Subject here', 'Here is the message.', settings.EMAIL_HOST_USER, 
     ['[email protected]'], fail_silently=False) 

Кроме того, это мои настройки в setting.py файле:

EMAIL_USE_TLS = True 
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 
EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_HOST_PASSWORD = 'xxxx' #my gmail password 
EMAIL_HOST_USER = '[email protected]' #my gmail username 
EMAIL_PORT = 587 
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER 
15

Помните:

Перейти к вашему Google Настройки учетной записи, найдите Безопасность -> Разрешения учетной записи -> Доступ к менее безопасным приложениям, включите эту опцию.

О варианте: https://support.google.com/accounts/answer/6010255

+2

возможно более безопасный вариант для добавления специального пароля для приложения: https://security.google.com/settings/u/1/security/apppasswords – ptim

+0

Ссылка не работает @ptim :( –

+0

tx @ Vini.g.fer! Эта страница справки объясняет процесс: https://support.google.com/accounts/answer/185833?hl=en – ptim

Смежные вопросы