SMTPAuthenticationError при отправке gmail
У меня такая ошибка: smtplib.SMTPAuthenticationError: (535, b'5.7.8 Имя пользователя и пароль не приняты. Learn more at\n5.7.8 https://support.google.com/mail/?p=BadCredentials ij28-20020a170902ab5c00b00163efcd50bdsm1197936plb.94 - gsmtp'), когда я пытаюсь отправить gmail в моем приложении для регистрации
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'repository0612@gmail.com'
EMAIL_HOST_PASSWORD = '****************'
EMAIL_PORT = 587
Я читал на других форумах, что нужно просто включить менее безопасные приложения в настройках учетной записи google, но google уже отключил эту настройку. Я также попробовал отключить двустороннюю аутентификацию, и мои EMAIL_HOST_USER и EMAIL_HOST_PASSWORD совпадают с моим email и паролем. Что еще я должен сделать, чтобы решить эту проблему?
я считаю, что у вас проблема с кодом, попробуйте мою функцию, она работает с gmail, без дополнительных настроек
import smtplib
from email.mime.text import MIMEText
def email_sender(to_email, theme, message):
sender = "example@gmail.com"
password = "mypassword"
body = message
# make up message
msg = MIMEText(body)
msg['Subject'] = theme
msg['From'] = sender
msg['To'] = ", ".join(to_email)
#sending
session = smtplib.SMTP('smtp.gmail.com', 587)
session.starttls()
session.login(sender, password)
send_it = session.sendmail(sender, to_email, msg.as_string())
session.quit()
Спасибо за помощь, ребята. Он уже работает, используя сгенерированный пароль приложения в моем аккаунте google вместо использования моего собственного пароля в EMAIL_HOST_PASSWORD
Эта функция больше не поддерживается с 30 мая 2022 года. See https://support.google.com/accounts/answer/6010255?hl=en&visit_id=637896899107643254-869975220&p=less-secure-apps&rd=1#zippy=%2Cuse-an-app-password
Так что для новых пользователей мы не сможем использовать менее безопасное приложение из-за нового обновления, но беспокоиться не о чем.
В gmail после разрешения двухступенчатой аутентификации появится функция app passsword, которую можно использовать.
Зайдите в приложение пароль > укажите имя > скопируйте пароль.
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_USE_TLS = True
EMAIL_PORT = 587
EMAIL_HOST_USER =
EMAIL_HOST_PASSWORD = "paste that password"
это сработает!