Skip to content

Instantly share code, notes, and snippets.

@GuilhermeBarile
Created April 30, 2012 21:13
Show Gist options
  • Save GuilhermeBarile/2562736 to your computer and use it in GitHub Desktop.
Save GuilhermeBarile/2562736 to your computer and use it in GitHub Desktop.
Download spam mail from gmail
import email, getpass, imaplib, os
detach_dir = '.' # directory where to save attachments (default: current)
user = raw_input("Enter your GMail username:")
pwd = getpass.getpass("Enter your password: ")
# connecting to the gmail imap server
m = imaplib.IMAP4_SSL("imap.gmail.com")
m.login(user,pwd)
m.select("[Gmail]/Spam") # here you a can choose a mail box like INBOX instead
# use m.list() to get all the mailboxes
resp, items = m.search(None, "ALL") # you could filter using the IMAP rules here (check http://www.example-code.com/csharp/imap-search-critera.asp)
items = items[0].split() # getting the mails id
for emailid in items:
resp, data = m.fetch(emailid, "(RFC822)") # fetching the mail, "`(RFC822)`" means "get the whole stuff", but you can ask for headers only, etc
email_body = data[0][1] # getting the mail content
#Check if its already there
att_path = "spam/" + emailid + ".txt"
if not os.path.isfile(att_path) :
# finally write the stuff
fp = open(att_path, 'wb')
fp.write(email_body)
fp.close()
@Namkolla
Copy link

Namkolla commented Feb 10, 2018

This was super helpful!

Also wanted to add that while this works for the Spam folder, it sometimes fails for other labels. For example to access my own created label "INFX", I had to remove "[Gmail]" from the m.select() command. I.e. I changed
m.select("[Gmail]/INFX")
to
m.select("INFX")
and it worked for me!

Just sharing in case anyone else faces those issues.

@asreerama
Copy link

gmail doesnt allow this kind of sign in anymore :(
Any work arounds ??

@GuilhermeBarile
Copy link
Author

@asreerama I haven't used this in many years, but one of the requirements is to enable "less secure applications" or something like that on the gmail settings.
Besides this script, it should work with any IMAP client

@akaryan7175
Copy link

Hi

@Shaktigaming
Copy link

Hi

@fnaquira
Copy link

Thank you!! this script was simple and awesome, it totally works when gmail has less secure applications enabled

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment