I'm seeking some help logging into a gmail account and downloading some emails using a python script. I'm trying to adapt an approach found here, but I'm running into a problem with step 1, accessing the account via imap.
here is the code I'm starting with:
import email import imaplib m = imaplib.IMAP4_SSL("imap.gmail.com",993) rc, resp = m.login('myemailaddress','mypassword') I get the following error:
Traceback (most recent call last): File "email.py", line 1, in <module> import email, imaplib File "/home/will/wd/email.py", line 14, in <module> m.login('myemailaddress','mypassword') File "/usr/lib/python3.4/imaplib.py", line 538, in login raise self.error(dat[-1]) imaplib.error: b'[ALERT] Please log in via your web browser: http://support.google.com/mail/accounts/bin/answer.py?answer=78754 (Failure)' Imap is indeed enabled in gmail settings. I have looked at the instruction on the google support link and questions regarding this error in similar situations, such as here and here, but my situation is different from the first because
1) it never worked to start with, and
2) I'm not running it so frequently to get blocked. Its also different from the second example because this is a normal gmail account, not a custom domain with a google apps account.
Using the https://accounts.google.com/DisplayUnlockCaptcha to try and allow access doesn't work for me either.
The only thing that allows login to work is to change my google accounts security settings to "allow access for less secure apps".
My question is: how can I fix my code (or my setup more generally) to allow me to login, without relaxing my accounts security settings? Is there some way to meet security requirements using libimap?
As for the actual Python code, all you need to do is call the login method: import smtplib gmail_user = '[email protected]' gmail_password = 'P@ssword! ' try: server = smtplib. SMTP_SSL('smtp.gmail.com', 465) server.
IMAP is an email retrieval protocol which does not download the emails. It just reads them and displays them. This is very useful in low bandwidth condition. Python's client side library called imaplib is used for accessing emails over imap protocol.
You can try to turn on this: https://www.google.com/settings/security/lesssecureapps This action solved the same problem for me.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With