Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Python library to read and manage your Gmail (github.com/charlierguo)
158 points by charlierguo on Aug 6, 2013 | hide | past | favorite | 29 comments



You can also retrieve the password from your system keyring[1]

    import keyring

    pass_is = keyring.get_password('gmail', 'whatever@gmail.com')
you set it with

    set_password(servicename, username, password)
so

    set_password('gmail', 'whatever@gmail.com', 'one of those per app passwords if you use 2factor for example')
[1] https://pypi.python.org/pypi/keyring


Even better, use oauth2 tokens instead of your username/password.

Here's a script to generate them: https://google-mail-oauth2-tools.googlecode.com/svn/trunk/py...


That's amazing, I never knew this existed, thanks!


This is great.

For the record, if you just need to do some simple scripting of your Gmail, maybe on cron, Google Apps Script is great for that. https://developers.google.com/apps-script/

Here's a recent simple example I wrote up. http://mikecr.it/ramblings/marking-gmail-read-with-apps-scri...


Cool!

If you're looking for non-gmail-specific email lib thingerator, check out IMAPClient (it's better than imaplib I swear!):

http://imapclient.readthedocs.org/en/latest/


There is also Imbox https://github.com/martinrusev/imbox, which is a Python library for reading all kinds of IMAP mailboxes, not just Gmail


Slightly off topic, but does anyone know of a similar library for Google Calendar that's any good?


There is the official Google APIs Client Library for Python (https://developers.google.com/google-apps/calendar/downloads). You can even test the RESTful API online using the Google APIs Explorer (https://developers.google.com/apis-explorer/#p/calendar/v3/).


I knew about that. Maybe I just want a good example application to use as a reference…


This is really cool. The only thing I use gmail web interface for since I moved to mutt and IMAP, is forwarding already sent emails with large attachments to new addresses. They way I have mutt set up is that it downloads the attachment first and then sends it once per recipient. The web interface just sends it, so I wonder is there a way to duplicate that functionality with mutt or with a library like this.


I really wish the username/password option wasn't supported. What use cases aren't possible with OAuth?


Guess I can potentially use this as a module in a tornado/Django web application for scheduling email, without having the user to sign in to gmail explicitly or opening up a separate pop-up/browser window.


This is great. Thank you for sharing.

I've been planning to create a Python script to help me automatically label my older emails based on content. This is a big help.


Thank you for sharing this. I've been very interested in building my own Gmail client the past few weeks, and this looks like a nice starting point.


Thank you, this is really useful.

Just when I needed it and wanted to write one you posted it. I don't think I would have done half the good job you did.


Thanks! I was working on a side project that needed to access my GMail, and I couldn't believe that a good library didn't exist already. If you find any bugs or use cases that aren't covered well, file an issue or make a contribution!


Very cool - I am sure a lot of people will get good use out of it. Rather surprised nothing like this already existed.


how to get the attachment files ? i didn't see anyhting in the doc about it ... Are they in the body ?


Didn't know the Ruby one existed, thanks for that!


My experience of the Ruby client referenced was that it was a little out of date. I was seeing errors when trying to use it a couple of weeks ago.


I am using the Gmail gem (https://github.com/nu7hatch/gmail) in couple of my rails projects and it works perfect. Every single mail is delivered.


Ah, I was try to read emails and get Ruby to process them.


there are two ruby gems for Gmail, which did you use?


I actually tried both, as I remember


thank you for this. I was looking for something like this for a project I was working on


I built it because of a project I was working on :). Feel free to create an issue if you need some new features or have use cases that aren't covered.


This looks pretty nice. It's really too bad that it works with a Google service.


Right, who still wants to share their data with Google?


interesting,will try it.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: