Ошибка отправки электронной почты: поднять SMTPAuthenticationError (код, соотв.)

Я пытаюсь отправить электронные письма с помощью модуля smtp, но у меня возникает ошибка:

File "/usr/lib/python2.7/smtplib.py", in login    
 raise SMTPAuthenticationError(code, resp) smtplib.SMTPAuthenticationError: (534, '5.7.14)...

У кого-то уже была эта ошибка? Вы знаете, как исправить?

Код:

def sendNotification():
    recepients_list = "[email protected]"
    subject = 'Subject'
    message = "Message" 
    sendemail(recepients_list,subject,message)

def sendemail(to_addr_list, subject, message):
    username = '[email protected]'
    password = 'passtest'   
    from_addr = '[email protected]'    
    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.ehlo()
    server.starttls()
    server.login(username,password)
    newmessage = '\r\n'.join([
              'To: %s' %recepient_list,
               'From: %s' % from_addr,
                'Subject: %s' %subject,
                '',
                message
                ])
    try:    
        server.sendemail(from_addr, to_addr_list,newmessage)
        print 'notification sent'
    except:
        print 'error sending notification'
    server.quit()


sendNotification()

person UserX    schedule 30.03.2015    source источник
comment
Если бы мне пришлось угадывать, это была бы какая-то проблема с TLS/SSL. Вы уже прошли этот путь?   -  person Ryan O'Donnell    schedule 30.03.2015
comment
Вы можете попробовать отключить CAPTCHA или зарегистрировать пароль для конкретного приложения в своей учетной записи Gmail: joequery.me/ руководства/python-smtp-authenticationerror   -  person Joe Young    schedule 30.03.2015
comment
Спасибо за советы, но все равно не работает!   -  person UserX    schedule 30.03.2015
comment
Я не думаю, что это вызовет конкретную ошибку, о которой вы сообщаете, но в вашем коде выше есть опечатка. Я думаю, вам следует вызывать server.sendmail(), а не server.sendmail() (обратите внимание на e перед почтой). С другой стороны, я только что попытался отправить почту через gmail с помощью smtplib, выполнив практически те же действия, что и вы, и это сработало для меня. Я все еще думаю, что проблема заключается в настройках безопасности вашей учетной записи Google.   -  person Joe Young    schedule 30.03.2015


Ответы (4)


Перейдите к настройкам безопасности аккаунта Google: www.google.com/settings/security.

Найдите поле «Доступ для менее безопасных приложений». Установите его на «Разрешено».

Попробуйте еще раз свой сценарий, заменив server.sendemail() на server.sendmail().

person Joe Young    schedule 30.03.2015
comment
Даже после включения менее защищенных устройств я не могу войти в систему. Мой пароль правильный, и я использую тот же код, который указан на веб-сайтах, чтобы быть правильным - person proprius; 04.02.2016
comment
@proprius то же самое для меня. ты разобрался? - person Anupam; 18.12.2017
comment
используйте эту ссылку, которая привела вас непосредственно на нужную страницу: https://www.google.com/settings/security/lesssecureapps - person Aashish; 10.04.2018
comment
@ Анупам то же самое для меня. Вы поняли это? - person Nityesh Agarwal; 12.08.2018
comment
@NityeshAgarwal Если я правильно помню, я обнаружил, что он автоматически отключал его, даже когда я его включал. Я думаю, что я просто попробовал пару раз, и это сработало - person Anupam; 12.08.2018
comment
На самом деле я обнаружил, что совершаю крайне глупую ошибку, вводя свой адрес электронной почты как [email protected], а не [email protected]. В любом случае спасибо @Anupam :) - person Nityesh Agarwal; 12.08.2018

(534, b'5.7.14. Войдите в систему через веб-браузер и\n5.7.14, а затем повторите попытку.\n5.7.14 Узнайте больше на\n5.7.14 https://support.google.com/mail/answer/78754 h16sm7090987wrc.89 - gsmtp')

попробуйте https://myaccount.google.com/security#connectedapps

Разрешить менее безопасные приложения: ВКЛ. Некоторые приложения и устройства используют менее безопасную технологию входа, что может сделать вашу учетную запись уязвимой. Вы можете отключить доступ к этим приложениям (что мы рекомендуем) или использовать их, несмотря на риски.

person xiyu liu    schedule 06.08.2017

Ни один из менее безопасных вариантов не работал для меня. В итоге сработала настройка двухфакторной аутентификации, а затем генерация пароля для конкретного приложения. Инструкции здесь: https://support.google.com/domains/answer/9437157.

person foges    schedule 13.06.2020

У меня была точно такая же проблема. Да, это сработало. Включив настройку безопасности вашей учетной записи Gmail -> Разрешить менее безопасное приложение, я смог отправить простое электронное письмо с одной учетной записи Gmail на другую учетную запись Gmail.

ВНИМАНИЕ! Google не рекомендует разрешать приложениям с низким уровнем безопасности доступ к вашей учетной записи Google. Это может быть угрозой безопасности. Выключите его после эксперимента.

person user8861267    schedule 31.10.2017