Thunderbird Scripting Plugin (DuckPond)

2012-12-05

In my undergraduate software engineering course, Bert Cortina, Kartik Verma, and I developed a Thunderbird plugin over the course of the semester. What we developed originally started out as a scripting language for email-related tasks, but quickly evolved into a graphical workflow-based scripting system.

Each action in the workflow is programmed as a python module, allowing infinite extensibility of the system. The model is essentially that of a pipeline: each module reads a certain type of data and passes it to the next module.

The system interfaces with Thunderbird through XPCOM, specifically PyXPCOM, since we were using Python.

The features we were able to implement by the end included:

  • Parsing entire mailboxes, or individual folders (Inbox, Sent, etc.)
  • Filtering emails by regular expression
  • Extracting attachments
  • Zipping attachments into a single zip file

DuckPond is what we internally called the project. At the end of the course, we decided to release it as open source.

The plugin sources and binary xpi are hosted on Google Code.

Note that the plugin does not work on newer versions of Thunderbird, since AFAICT, there is not a version of pythonext which is compatible with newer Thunderbird releases (please correct me if I'm wrong).

Tags for this post
comments powered by Disqus

About the Author

Kevin's Gravatar Kevin Howell
Software Engineer
kevin@kahowell.net

Disclaimer

The views expressed here are not those of, and are not endorsed by, any of my employers - past, present, or future, or of any individuals or organizations I am associated with.
© 2015 Kevin Howell. Powered by Jekyll and GitHub Pages.