Tag 0.1a as done
Clear stored draft once a reply has been sent.
2 files changed
tree: 617e829b47808af4f41225f7b56b9f15e30c01c9
  1. configs/
  2. docs/
  3. mm3/
  4. site/
  5. tools/
  6. LICENSE
  7. NOTICE
  8. README.md
README.md

Pony Mail



Pony Mail is a web-based mail archive browser licensed under the Apache License v/2.0 and built to scale to millions of archived messages with hundreds of requests per second.

Pony Mail allows you to browse and interact with mailing lists using Mozilla Persona or OAuth2 for authentication.

Ponies

See http://ponymail.info for a demo.

Pony Mail works in both public, private and mixed-mode, allowing you to have one unified place for all your communication, both public and private.

Features include:

  • Public and private list viewing based on auth
  • Cross-list threading
  • OpenSearch support for browsers (can add as search engine)
  • In-browser reply to mailing lists
  • Fast and intuitive searching
  • Threaded and flat view modes
  • Notifications of replies to emails sent via Pony Mail
  • Email and list statistics
  • Multi-site, Multi-list handling
  • Word clouds (yay!)
  • Fuzzy-logic email grouping/threading (based in part on JWZ's ideas)
  • Supports both custom OAuth and Mozilla Persona
  • Atom feeds for all lists (including private ones!)

Requirements:

  • ElasticSearch backend
  • Apache HTTP Server frontend with mod_lua loaded
  • Python 2.7 for importing (with elasticsearch and formatflowed via pip)
  • MailMan3 if you fancy that (we have an archive plugin)
  • OR any mailing list system of your choice (use mm3 plugin with stdin)
  • Python 3.x for the archiver plugin (yes yes, we know..!)
  • Lua 5.1 or 5.2 + lua-cjson, luasec and luasocket

Getting started

(Optionally see the detailed installation instructions for more information)

  1. Install Apache httpd + mod_lua and the lua libs (see http://modlua.org/gs/installing if need be)
  2. Install ElasticSearch
  3. go to tools/ and run python setup.py - follow the instructions and enter info
  4. Fiddle a bit with site/js/config.js for now
  5. import mbox data with import-mbox.py if need be
  6. All done :)

TODO:

  • Set up dir structure (DONE)
  • Import site data (DONE)
  • Import tools (DONE)
  • Import settings / setup tools (DONE)
  • Import, fix archiver (DONE)
  • Add license headers (ALv2) to everything (DONE(?))
  • Have reply feature actually work (DONE)
  • Split JS into smaller files for development, bundle together for releases (DONE)
  • Start on documentation
  • Rework JS, turn those ugly innerHTML hacks into proper DOM handling
  • Set up notification system (depends on reply system) (Sort of works, but still WIP!)
  • Have it work with ES with auth mode or via HTTPS