Personal Productivity Stack Exchange is a question and answer site for people wanting to improve their personal productivity. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In trying to eliminate the various timesinks that plague my day, I thought about the time that I spend dealing with automatic emails. The most common kind are invoices for which I've automatically paid. When I get emailed those, I'd like to download the invoice and save it in a dedicated folder on my Dropbox, so I'll file it next time I report my expenses.

Sometimes the invoice is attaches as PDF, but unfortunately sometimes you get a link to login to an abysmal website where you need to navigate in order to download the invoice.

What I want: A piece of software that'll automatically check my email, see whether I have any emails that fit a given pattern, and if so execute a predefined action on them automatically. (In the above case, download and save an invoice.)

I've searched online and found a product called G-Lock Email Processor, which seems interesting, unfortunately it's quite expensive.

Is anyone familiar with a solution to this problem?

share|improve this question

Consider automatically moving all these invoices into a special folder in your email program and checking this special folder manually once a week. Or once a month or before you file a report.

This will save you from distractions and frequent context switching, and this will also save the time you would spend on finding, installing and configuring (programming) the fully automated solution. (Of course it depends on a number of invoices you have to process.)

share|improve this answer

I would be tempted to implement this kind of action using Autohotkey. There are other macro/scripting languages, that's the one I use. I'm a programmer, non-programmers may find that approach more technical than they can stand. There are a lot of Autohotkey scripts that can be found around the web already written, there may be something that fits your need.

share|improve this answer
If I'd go for a programming solution I'd choose Python before AutoHotKey. (Hell, I'd choose Assembly language before AutoHotKey, which is one of the most terrible languages I've ever used. It's excellent only for Windows integration, otherwise it's terrible.) But yeah, making a custom program that connects with IMAP to GMail might be the best solution. – Ram Rachum May 27 '13 at 16:15

I use getmail ( with gmail.

Getmail runs as a cron job on a server I have access to, and does a number of things... One of which is to generate these inbox graphs, which I describe properly in this answer Gamification to improve myself enter image description here

However I also use python (partly because that's what getmail is written in) to do a number of other tasks. For example, I have some code that, each day, looks for the oldest task in my inbox and adds it to a text file. Then I have some more code that checks the inbox at noon to see if it's still there - if the task is still there then it sends me a warning message...

The (fairly hacky, I'm not naturally a python programmer) code for this looks like

from __future__ import division
import time
import os
import sys

#Big problem with this is if tasks are in the list twice (two 'drink 1l water' f
or example) the current code checks *anywhere* in the inbox, not just at the bot

def findTask(filename):
    file = open(filename)
        line = file.readline()[33:]
    while line:
#       print line
 #       print "and now" 
  #      print line
    return lastTask[33:]

def processFile(filename,targettask):
    file = open(filename)
        line = file.readline()[33:]
    while line:
#       print line
            #print number
 #           print "line", line
 #           print "lastline",lastline
        if line.strip()==targettask.strip():
        print "WARNING!!!!!!"
        os.system('echo '+line.strip()+' > email.txt')
                os.system('/bin/mail -s "WARNING!!! OLDEST TASK ACTIVE:" "" < "email.txt"')
                os.system(' rm email.txt')

print task
processFile("/home/pgrads/joseph/emailAnalysis/subjects.txt", task) 

But you can certainly see how I can use the combination of gmail, getmail, and python to search for emails of a particular type and perform some extra action - for example I have a bit of python that downloads all the sms messages that arrive in my inbox (I use to get them to my inbox) and puts them in a database file for archiving.

share|improve this answer

I think I'm going to use ProcImap to program a solution myself.

share|improve this answer

Are you using Gmail? If so it has the built in ability to create filters and take a corresponding action.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.