web-dev-qa-db-fra.com

SMTPAuthenticationError lors de l’envoi de courrier en utilisant gmail et python

quand j'essaie d'envoyer un courrier en utilisant gmail et python s'est produite, ce type de question se trouve déjà dans ce site mais ne m'aide pas

gmail_user = "[email protected]"
gmail_pwd = "password"
TO = '[email protected]'
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 = '\r\n'.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=AKgnsbtl1\n5.7.14       Li2yir27TqbRfvc02CzPqZoCqope_OQbulDzFqL-msIfsxObCTQ7TpWnbxIoAaQoPuL9ge\n5.7.14 BUgbiOqhTEPqJfb02d_L6rrdduHSxv26s_Ztg_JYYavkrqgs85IT1xZYwtbWIRE8OIvQKf\n5.7.14 xxtT7ENlZTS0Xyqnc1u4_MOrBVW8pgyNyeEgKKnKNyxce76JrsdnE1JgSQzr3pr47bL-kC\n5.7.14 XifnWXg> Please log in via your web browser and then try again.\n5.7.14 Learn more at\n5.7.14 https://support.google.com/mail/bin/answer.py?answer=78754 fl15sm17237099pdb.92 - gsmtp')    
59
mans

Votre code semble correct. Essayez de vous connecter via votre navigateur et si vous pouvez accéder à votre compte, revenez et essayez votre code à nouveau. Assurez-vous simplement que vous avez bien saisi votre nom d'utilisateur et votre mot de passe.

[~ # ~] modifier [~ # ~] : Google bloque les tentatives de connexion des applications n'utilisant pas les normes de sécurité modernes (mentionnées sur leur support). page ). Vous pouvez cependant activer/désactiver cette fonction de sécurité en cliquant sur le lien ci-dessous:

Allez sur ce lien et sélectionnez Activer
https://www.google.com/settings/security/lesssecureapps

102
aaveg

Votre code semble correct, mais Google bloque parfois une adresse IP lorsque vous essayez d'envoyer un courrier électronique depuis un emplacement inhabituel. Vous pouvez donc débloquer le lien suivant.

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

8
taz

Je viens d'envoyer un email avec Gmail via Python. Essayez d’utiliser smtplib.SMTP_SSL pour établir la connexion. Vous pouvez également essayer de modifier le domaine et le port gmail.

Donc, vous pouvez avoir une chance avec:

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

En plus, vous pouvez vérifier le module intégré de messagerie. De cette façon, vous pouvez améliorer la lisibilité de votre code et gérer facilement les en-têtes des courriels.

3
ppalacios