Django Email sending SMTP Error, cant send a mail
Я пытаюсь отправить электронное письмо в рамках моего проекта Django:
# settings.py
EMAIL_HOST_USER = os.getenv('EMAIL_HOST_USER')
EMAIL_HOST_PASSWORD = os.getenv('EMAIL_HOST_PASSWORD')
EMAIL_PORT = 587
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_USE_TLS = True
def notify_user(email_address, subject='Subject', message='Some message!') -> None:
send_mail(
subject,
message,
settings.EMAIL_HOST_USER,
[email_address],
fail_silently=False
)
Как я знаю, мне нужно отключить эту опцию (Gmail Security), но Gmail не позволяет мне это сделать.
В результате я получил эту ошибку:
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 f14-20020a056512360e00b00492bbf7db8asm320697lfs.85 - gsmtp')
Что я могу сделать? Как отключить эту опцию?
Google отключил/отменил функцию Less Secure App с 30 мая 2022 года.
Как рекомендовал @MeL, вы можете использовать альтернативу, но вы все равно можете использовать Gmail для отправки писем с помощью Django
. Вы можете прочитать этот блог Настройка почты на django с помощью Gmail, чтобы помочь с руководством по настройке, если вы незнакомы с настройкой Паролей приложений Google.
Кроме того, вам нужно будет сделать еще одну последнюю вещь, чтобы активировать пароль приложения, который будет использоваться Django
. Вам следует посетить сайт https://accounts.google.com/DisplayUnlockCaptcha, выбрать continue и все готово.