Подтвердить что ты не робот

Django 1.8 отправка почты с использованием gmail SMTP

Я пытался отправить почту с помощью smtp.gmail.com в django 1.8

Мои 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.

4b9b3361

Ответ 1

для меня в settings.py:

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

и views.py:

from django.core.mail import EmailMessage

email = EmailMessage('title', 'body', to=[email])
email.send()

и: https://accounts.google.com/DisplayUnlockCaptcha

Ответ 2

Помните:

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

Об этой опции: https://support.google.com/accounts/answer/6010255

Ответ 3

Я тестировал это и отлично работал в django 1.8:
сначала вы должны проверить эту ссылку, предоставленную 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

Ответ 4

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

EMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend'

по

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

Ответ 5

В settings.py измените это

EMAIL_HOST='imap.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD ='**********'
EMAIL_USE_SSL=False
EMAIL_USE_TLS= True

Ответ 6

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

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

Разблокировать Captcha: 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 до версии 2.1.3 и, наконец, работает, хотя это тоже важно: https://accounts.google.com/DisplayUnlockCaptcha, чтобы разрешить приложение без защиты

Спасибо вам всем,

Ответ 8

Я использовал это для Джанго 1.11

В settings.py

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

В view.py

send_mail('mail subject', 'body content',settings.EMAIL_HOST_USER,
                      ['[email protected]'], fail_silently=False)

и перейдите на страницу https://myaccount.google.com/u/0/security?hl=en, чтобы включить менее безопасный доступ к приложению.