Django : smtplib.SMTPAuthenticationError: 535, b'5.7.8 Имя пользователя и пароль не приняты

Я пытался отправить почту, используя gmail smtp в DJango. Я знаю об этой опции Less secured apps. Но эта опция была отключена google. Также у меня нет двухфакторной аутентификации на моем аккаунте.

Вот мой setting.py

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'myemail@gmail.com' # put your gmail address here
EMAIL_HOST_PASSWORD = 'password'
EMAIL_USE_TLS = True

Но я получаю ошибку

[2022-06-15 10:28:10,688: ERROR/ForkPoolWorker-1] Task app.tasks.send_email_task[9068931b-a457-415e-b910-d7c631596fce] raised unexpected: SMTPAuthenticationError(535, b'5.7.8 Username and Password not accepted. Learn more at\n5.7.8  https://support.google.com/mail/?p=BadCredentials o16-20020a056a00215000b0051b97828505sm9333570pfk.166 - gsmtp')
Traceback (most recent call last):
  File "/etc/myprojectenv/lib/python3.8/site-packages/celery/app/trace.py", line 451, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/etc/myprojectenv/lib/python3.8/site-packages/celery/app/trace.py", line 734, in __protected_call__
    return self.run(*args, **kwargs)
  File "/etc/myproject/app/tasks.py", line 12, in send_email_task
    return send_mail(
  File "/etc/myprojectenv/lib/python3.8/site-packages/django/core/mail/__init__.py", line 87, in send_mail
    return mail.send()
  File "/etc/myprojectenv/lib/python3.8/site-packages/django/core/mail/message.py", line 298, in send
    return self.get_connection(fail_silently).send_messages([self])
  File "/etc/myprojectenv/lib/python3.8/site-packages/django/core/mail/backends/smtp.py", line 124, in send_messages
    new_conn_created = self.open()
  File "/etc/myprojectenv/lib/python3.8/site-packages/django/core/mail/backends/smtp.py", line 91, in open
    self.connection.login(self.username, self.password)
  File "/usr/lib/python3.8/smtplib.py", line 743, in login
    raise last_exception
  File "/usr/lib/python3.8/smtplib.py", line 732, in login
    (code, resp) = self.auth(
  File "/usr/lib/python3.8/smtplib.py", line 655, in auth
    raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted. Learn more at\n5.7.8  https://support.google.com/mail/?p=BadCredentials o16-20020a056a00215000b0051b97828505sm9333570pfk.166 - gsmtp')

Опция менее безопасного приложения также теперь отключена

enter image description here

Я попробовал разрешить доступ к https://accounts.google.com/DisplayUnlockCaptcha

Но все равно я получаю ту же ошибку

Если вы хотите использовать gmail smtp с Django, необходимо включить опцию 2 factor authentication. Как только эта опция будет включена, вы начнете видеть эту опцию App passwords.

enter image description here

Теперь необходимо сгенерировать пароль для почтового приложения и выбрать устройство в качестве компьютера windows.

enter image description here

В результате будет сгенерирован пароль. Введите этот пароль в EMAIL_HOST_PASSWORD. Попробуйте снова запустить функцию отправки почты, теперь она должна работать нормально.

Google больше не принимает почту с менее безопасным приложением, Как Himanshu говорит выше Альтернативный способ отправки Gmail с помощью пароля приложения.

Gmail/Google недавно удалил доступ к приложению Less Secure. Вот что они говорят:

Чтобы обеспечить безопасность вашего аккаунта, с 30 мая 2022 года Google больше не поддерживает использование сторонних приложений или устройств, которые просят вас войти в аккаунт Google, используя только имя пользователя и пароль.

.

Теперь любой почтовик, отправляющий электронную почту по прямому SMTP, будет выдавать ошибку "535-5.7.8 Имя пользователя и пароль не приняты". Это происходит потому, что теперь Google запрашивает пароль конкретного приложения, а пароль почтового аккаунта не является паролем приложения, поэтому они показывают, что имя пользователя/пароль не приняты

Вам необходимо создать и использовать специальный пароль приложения. Пароль приложения работает как альтернативный пароль для вашей учетной записи. Он может использоваться только теми приложениями, которым вы его передаете, поэтому он более безопасен, чем основной пароль.

Для создания пароля для конкретного приложения:

  1. Включите двухфакторную аутентификацию.
  2. Перейдите в настройки учетной записи Gmail и выберите App Passwords.
  3. .
  4. Назовите его как угодно и придумайте пароль.
  5. Используйте этот новый 16-значный пароль вместе с почтой gmail для SMTP (Вместо пароля используйте этот 16-значный пароль)
  6. .

Наслаждайтесь отправкой электронных писем!!!

Create Gmail App Access Create App Access Create App Access

Вернуться на верх