SMTPAuthenticationError lors de l'envoi de courrier en utilisant gmail et python [dupliquer]

cette question a déjà une réponse ici:

quand j'essaie d'envoyer du courrier en utilisant gmail et une erreur de python s'est produite ce type de question sont déjà dans ce site mais ne m'aide pas

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')

erreur:

    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')    
42

3 réponses

votre code semble correct. Essayez de vous connecter via votre navigateur et si vous êtes en mesure d'accéder à votre compte, revenez et réessayez votre code. Assurez-vous d'avoir saisi votre nom d'utilisateur et votre mot de passe correctement

EDIT : Google bloque les tentatives de connexion à partir d'applications qui n'utilisent pas les normes de sécurité modernes (mentionné sur leur support page ). Vous pouvez cependant activer / désactiver ce dispositif de sécurité en allant sur le lien ci-dessous:

allez sur ce lien et sélectionnez allumez

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

83
répondu aaveg 2015-11-04 22:43:11

votre code semble correct, mais parfois google bloque une ip lorsque vous essayez d'envoyer un e-mail depuis un emplacement inhabituel, donc, vous pouvez débloquer dans le lien suivant

https://support.google.com/accounts/answer/6009563 et cliqué accounts.google.com/DisplayUnlockCaptcha .

4
répondu taz 2015-03-18 14:51:02

je viens d'envoyer un e-mail avec gmail à travers Python. Essayez d'utiliser smtplib.SMTP_SSL pour faire la connexion. Vous pouvez également essayer de changer le domaine et le port gmail.

ainsi, vous pouvez obtenir une chance avec:

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

comme un plus, vous pouvez vérifier le module e-mail builtin. De cette façon, vous pouvez améliorer la lisibilité de vous votre code et gérer les en-têtes e-mails facilement.

3
répondu ppalacios 2014-11-10 21:46:31