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

Невозможно настроить Django для работы с smtp.gmail.com.

Я пытаюсь заставить django работать с gmail smtp-сервером для отправки писем, но я всегда получаю эту трассировку. Любая помощь будет наиболее оценена.

----- settings.py -----

EMAIL_HOST = 'smtp.gmail.com'

EMAIL_HOST_USER = '[email protected]'

EMAIL_HOST_PASSWORD = 'your-password'

EMAIL_PORT = 587

EMAIL_USE_TLS = True

---- оболочка python -----

из django.core.mail import EmailMessage

     

email = EmailMessage ('Mail Test', 'This is test', to = ['[email protected]'])

     

email.send()

Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/fiodorovich/Envs/fdict/lib/python2.7/site-packages/django/core/mail/message.py", line 251, in send
return self.get_connection(fail_silently).send_messages([self])
File "/home/fiodorovich/Envs/fdict/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 86, in send_messages
sent = self._send(message)
File "/home/fiodorovich/Envs/fdict/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 104, in _send
email_message.message().as_string())
File "/usr/local/lib/python2.7/smtplib.py", line 701, in sendmail
raise SMTPSenderRefused(code, resp, from_addr)
SMTPSenderRefused: (530, '5.7.0 Must issue a STARTTLS command first. z15sm10449686anl.15', '[email protected]')

Изменить: новые ошибки при внесении изменений, предложенных unni. Оболочка не будет выполнена, и я получаю это сообщение об ошибке

**EMAIL_HOST_USER  = '[email protected]'**
 ^
SyntaxError: invalid syntax
4b9b3361

Ответ 1

Я недавно установил это и немного изменил конфигурацию settings.py.

Move:

EMAIL_USE_TLS = True 

вверху EMAIL_HOST

Добавить:

DEFAULT_FROM_EMAIL = '[email protected]'
SERVER_EMAIL = '[email protected]'

Ответ 2

Измените свои настройки следующим образом:

EMAIL_HOST = 'smtp.gmail.com'

EMAIL_HOST_USER = 'user'

EMAIL_HOST_PASSWORD = 'your-password'

EMAIL_PORT = 587

EMAIL_USE_TLS = True

Затем попробуйте:

python manage.py shell
>>> from django.core.mail import EmailMessage
>>> email = EmailMessage('Mail Test', 'This is a test', to=['[email protected]'])
>>> email.send()

Это должно возвращаться со статусом 1, что означает, что он сработал.

Ответ 3

У меня была та же проблема, и я искал полдня, чтобы найти решение. Большинство предлагаемых решений говорят о том, где вы должны инициализировать EMAIL_USE_TLS по отношению к другим настройкам. Я не думаю, что это решение проблемы.

Я нашел решение на: https://support.google.com/accounts/answer/185833?hl=en и наконец https://security.google.com/settings/security/apppasswords

Если вы тестируете свой проект на локальном компьютере, вы должны перейти к последней ссылке и включить "Доступ для менее безопасных приложений".

Ответ 4

EMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend'
EMAIL_HOST='smtp.gmail.com'
EMAIL_PORT=465
EMAIL_HOST_USER = 'youruser'
EMAIL_HOST_PASSWORD = '*********'
DEFAULT_EMAIL_FROM = '[email protected]'

отлично работает

Ответ 5

вам нужно перейти по этой ссылке https://www.google.com/settings/u/2/security/lesssecureapps?pageId=none и включите доступ для менее безопасных приложений.

эта опция позволяет django получать доступ к вашей электронной почте и отправлять электронную почту через нее.