Входные учетные данные, не работающие с Gmail SMTP

Я пытаюсь отправить электронное письмо на Python через Gmail. Вот мой код:

import smtplib


fromaddr = '......................'  
toaddrs  = '......................'  
msg = 'Spam email Test'  

username = '.......'  
password = '.......'

server = smtplib.SMTP('smtp.gmail.com', 587)  
server.ehlo()
server.starttls()
server.login(username, password)  
server.sendmail(fromaddr, toaddrs, msg)  
server.quit()

Я получаю сообщение об ошибке:

Traceback (most recent call last):
  File "email_send.py", line 18, in <module>
    server.login(username, password)
  File "C:\.....\Python\lib\smtplib.py", line 633
, in login
    raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepte
d. Learn more at\n5.7.8 http://support.google.com/mail/bin/answer.py?answer=1425
7\n5.7.8 {BADCREDENTIALS} s10sm9426107qam.7 - gsmtp')

Это, похоже, проблема с логином. Я уверен, что мои данные для входа верны, за исключением одного. Должно ли имя пользователя быть "[email protected]" или просто "бла"? Я пробовал и ту же ошибку.

Любая идея, что не так?

ПРИМЕЧАНИЕ: все периоды используются вместо путей к паролю, электронной почте/файлам и т.д.

Ответ 1

Я столкнулся с подобной проблемой и наткнулся на этот вопрос. Я получил ошибку аутентификации SMTP, но мое имя пользователя/пароль были правильными. Вот что это исправило. Я прочитал это:

https://support.google.com/accounts/answer/6010255

Короче говоря, Google не позволяет вам войти через smtplib, поскольку он пометил этот тип входа как "менее безопасный", поэтому вам нужно перейти по этой ссылке, когда вы входите в свою учетную запись Google, и разрешить доступ:

https://www.google.com/settings/security/lesssecureapps

Как только это будет установлено (см. мой скриншот ниже), оно должно работать.

Less Secure Apps

Логин теперь работает:

smtpserver = smtplib.SMTP("smtp.gmail.com", 587)
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.ehlo()
smtpserver.login('[email protected]', 'me_pass')

Ответ после изменения:

(235, '2.7.0 Accepted')

Предыдущий ответ:

smtplib.SMTPAuthenticationError: (535, '5.7.8 Username and Password not accepted. Learn more at\n5.7.8 http://support.google.com/mail/bin/answer.py?answer=14257 g66sm2224117qgf.37 - gsmtp')

Все еще не работает? Если вы все еще получаете SMTPAuthenticationError, но теперь код 534, это потому, что местоположение неизвестно. Перейдите по этой ссылке:

https://accounts.google.com/DisplayUnlockCaptcha

Нажмите "Продолжить", и это должно дать вам 10 минут для регистрации вашего нового приложения. Поэтому перейдите к следующей попытке входа в систему, и она должна сработать.

Похоже, это не сработает сразу, вы можете на некоторое время застревать с этой ошибкой в smptlib:

235 == 'Authentication successful'
503 == 'Error: already authenticated'

В сообщении говорится, что для входа необходимо использовать браузер:

SMTPAuthenticationError: (534, '5.7.9 Please log in with your web browser and then try again. Learn more at\n5.7.9 https://support.google.com/mail/bin/answer.py?answer=78754 qo11sm4014232igb.17 - gsmtp')

После включения "lesssecureapps", попробуйте кофе, вернитесь и снова попробуйте ссылку "DisplayUnlockCaptcha". Из опыта пользователей может потребоваться до часа, чтобы изменение вступило в силу. Затем повторите попытку входа.

ОБНОВЛЕНИЕ:: Смотрите мой ответ здесь: Как отправить письмо с Gmail в качестве поставщика с помощью Python?

Ответ 2

Я была такая же проблема. Ошибка аутентификации может быть связана с вашими настройками безопасности, например, с двухэтапной проверкой. Это не позволит сторонним приложениям отменять аутентификацию.

Войдите в свою учетную запись Google и используйте следующие ссылки:

Шаг 1 [Ссылка на отключение двухэтапной проверки]:

https://myaccount.google.com/security?utm_source=OGB&utm_medium=act#signin

Шаг 2: [Ссылка для разрешения менее безопасных приложений]

https://myaccount.google.com/u/1/lesssecureapps?pli=1&pageId=none

Теперь все должно быть хорошо.

Ответ 3

Если вы включаете двухэтапную аутентификацию, вам нужно создать специальный пароль приложения вместо обычного пароля. https://myaccount.google.com/security#signin

Ответ 4

У меня была такая же проблема. И я исправляю это, создавая пароль приложения для приложения электронной почты на Mac. Вы можете найти его в моей учетной записи → Безопасность → Вход в Google → Пароли приложений. ниже ссылка для этого.https://myaccount.google.com/apppasswords?utm_source=google-account&utm_medium=web

Ответ 5

если вы получаете сообщение об ошибке (535, b'5.7.8 Имя пользователя и пароль не принимаются. Подробнее на \n5.7.8 https://support.google.com/mail/?p=BadCredentials o60sm2132303pje.21 - gsmtp ')

затем просто зайдите в настройки учетной записи Google в разделе безопасности, создайте менее защищенную учетную запись и включите менее безопасную кнопку