SMTPAuthenticationError при отправке почты с помощью gmail и python [дубликат]

этот вопрос уже есть ответ здесь:

когда я пытаюсь отправить почту с помощью gmail и python произошла ошибка, этот тип вопроса уже находится на этом сайте, но не помогает мне

gmail_user = "me@gmail.com"
gmail_pwd = "password"
TO = 'friend@gmail.com'
SUBJECT = "Testing sending using gmail"
TEXT = "Testing sending mail using gmail servers"
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.login(gmail_user, gmail_pwd)
BODY = 'rn'.join(['To: %s' % TO,
        'From: %s' % gmail_user,
        'Subject: %s' % SUBJECT,
        '', TEXT])

server.sendmail(gmail_user, [TO], BODY)
print ('email sent')

ошибка:

    server.login(gmail_user, gmail_pwd)
    File "/usr/lib/python3.4/smtplib.py", line 639, in login
   raise SMTPAuthenticationError(code, resp)
   smtplib.SMTPAuthenticationError: (534, b'5.7.14   
   <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbtl1n5.7.14       Li2yir27TqbRfvc02CzPqZoCqope_OQbulDzFqL-msIfsxObCTQ7TpWnbxIoAaQoPuL9gen5.7.14 BUgbiOqhTEPqJfb02d_L6rrdduHSxv26s_Ztg_JYYavkrqgs85IT1xZYwtbWIRE8OIvQKfn5.7.14 xxtT7ENlZTS0Xyqnc1u4_MOrBVW8pgyNyeEgKKnKNyxce76JrsdnE1JgSQzr3pr47bL-kCn5.7.14 XifnWXg> Please log in via your web browser and then try again.n5.7.14 Learn more atn5.7.14 https://support.google.com/mail/bin/answer.py?answer=78754 fl15sm17237099pdb.92 - gsmtp')    

3 ответов


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

редактировать: Google блокирует попытки входа в приложения, которые не используют современные стандарты безопасности (упомянутые в их поддержке страница). Однако вы можете включить/выключить эту функцию безопасности, перейдя по ссылке ниже:

идем к этому ссылка и выберите Включить
https://www.google.com/settings/security/lesssecureapps


ваш код выглядит правильно, но иногда google блокирует ip, когда вы пытаетесь отправить электронное письмо с необычного места, поэтому вы можете разблокировать его по следующей ссылке

https://support.google.com/accounts/answer/6009563 и нажал кнопку accounts.google.com/DisplayUnlockCaptcha - ...


Я только что отправил электронное письмо с gmail через Python. Попробуйте использовать smtplib.SMTP_SSL для подключения. Кроме того, вы можете попытаться изменить домен и порт gmail.

таким образом, вы можете получить шанс с:

server = smtplib.SMTP_SSL('smtp.googlemail.com', 465)
server.login(gmail_user, password)
server.sendmail(gmail_user, TO, BODY)

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