<!DOCTYPE html><html><head><meta charset="utf-8"><title>Apache Pony Mail (Incubating)</title>
<link rel="stylesheet" type="text/css" href="css/default.css"/>
<link rel="stylesheet" type="text/css" href="css/fa/fa.css"/>
<link rel="apple-touch-icon" sizes="57x57" href="/icons/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/icons/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/icons/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/icons/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/icons/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/icons/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/icons/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/icons/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/icons/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192"  href="/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/icons/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/icons/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/icons/favicon-16x16.png">
<link rel="manifest" href="/icons/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/icons/ms-icon-144x144.png">
<meta name="theme-color" content="#ffffff">
</head><body>
<div style="margin: -10px; background: #7e614a; color: #EEE; margin-bottom: 20px; text-align: center;">
    <a href="#contribute"><img align='left' style="width: 150px; height: 150px; position: relative; left: -4px; border: 0;" src="images/devme.png" alt="Fork/Download Pony Mail"></a>
    <h1><a id="Pony_Mail_0"></a>Apache Pony Mail (Incubating)</h1>
    <div id="menubar" style="font-size: 20pt; background: #5e514a; padding-top: 5px;">
        <ul>
            <li><a href="/docs.html"><i class="fa fa-book"></i><span>Documentation</span></a></li>
            <li><a href="/source.html"><i class="fa fa-git-square"></i><span>Source</span></a></li>
            <li><a href="/downloads.html"><i class="fa fa-cloud-download"></i><span>Download</span></a></li>
            <li><a href="/support.html"><i class="fa fa-question-circle"></i><span>Get support</span></a></li>
            <li><a href="/contribute.html"><i class="fa fa-share-alt"></i><span>Contribute</span></a></li>
            <li><a href="/about.html"><i class="fa fa-users"></i><span>About</span></a></li>
        </ul>
    </div>
</div>
<h1>Pony Mail</h1>
<p><img src="images/ponymail.svg" style="width: 200px; margin-right: 20px; height: auto;" align="left"/><br/><br/>
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.</p>
<p>Pony Mail allows you to browse and interact with mailing lists 
using Mozilla Persona or OAuth2 (Google, GitHub, Facebook etc) for authentication.</p>
<p><img alt="Ponies" src="images/demo.png" /></p>
<p><img alt="Trends" src="images/demo_trends.png" /></p>
<p><img alt="N-grams" src="images/demo_ngrams.png" /></p>
<p>See <a href="https://lists.apache.org">https://lists.apache.org.org</a> for a demo.</p>
<p>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.</p>
<h3>Features include:</h3>
<ul>
<li>Importing from standard mbox files, maildir directory, Pipermail or an mod_mbox-driven site</li>
<li>Public and private list viewing based on auth</li>
<li>Cross-list threading</li>
<li>OpenSearch support for browsers (can add as search engine)</li>
<li>In-browser reply to mailing lists</li>
<li>Fast and intuitive searching</li>
<li>Threaded, flat and tree view modes</li>
<li>Notifications of replies to emails sent via Pony Mail</li>
<li>Email and list statistics</li>
<li>Multi-site, multi-list handling</li>
<li>Word clouds</li>
<li>Fuzzy-logic email grouping/threading (based in part on JWZ's ideas)</li>
<li>Supports both custom OAuth, Google Auth, OAuth.online and Mozilla Persona</li>
<li>Atom feeds for all lists (including private ones!)</li>
<li>Source view and custom range mbox export</li>
<li>Customized trend analysis and n-grams</li>
</ul>
<h3>Requirements:</h3>
<ul>
<li>Linux operating system (tested on Ubuntu, Debian, Fedora and CentOS - Windows or OS/X may work)</li>
<li>ElasticSearch backend</li>
<li>Apache HTTP Server frontend with mod_lua loaded OR</li>
<li>Nginx with nginx-extras (ng-lua module) AND lua-apr installed</li>
<li>Python 3.x for importing (with elasticsearch and formatflowed via pip)</li>
<li>A mailing list system:</li>
<li>MailMan3 if you fancy that (we have a python3 archive plugin)</li>
<li>OR any mailing list system of your choice (use archiver plugin with stdin)</li>
<li>Lua &gt;=5.1 + lua-cjson, luasec and luasocket</li>
</ul>
<h3>Development Benchmarking</h3>
<p>Pony Mail has been built for and tested with the mail archives of the Apache
Software Foundation, which span more than 15 million emails sent across more
than 20 years. To put things into perspective, importing all this on a modern
machine (2xSSD with 64GB RAM) took around 12 hours and resulted in a performance
at around 100 archive search requests per second per ES node, depending on mailing
list size and available bandwidth.</p>
<h3>TODO:</h3>
<p>This is a list of what we would love to get done:
<em> ~~Set up dir structure~~ (</em>DONE<em>)
</em> ~~Import site data~~ (<em>DONE</em>)
<em> ~~Import tools~~ (</em>DONE<em>)
</em> ~~Import settings / setup tools~~ (<em>DONE</em>)
<em> ~~Import, fix archiver~~ (</em>DONE<em>)
</em> ~~Add license headers (ALv2) to everything~~ (<em>DONE(?)</em>)
<em> ~~Have reply feature actually work~~ (</em>DONE<em>)
</em> ~~Split JS into smaller files for development, bundle together for releases~~ (<em>DONE</em>)
<em> Start on documentation (WIP)
</em> Rework JS, turn those ugly innerHTML hacks into proper DOM handling
<em> Set up notification system (depends on reply system) (works, but still </em>WIP!<em>)
</em> Have it work with ES with auth mode or via HTTPS</p>
<h2><a id="disclaimer"></a>Disclaimer</h2>
<p>
    <a href="https://incubator.apache.org"><img src="images/podling.svg" align="right" width="220px"/></a>
    Apache Pony Mail (Incubating) is an effort undergoing incubation at
    The Apache Software Foundation (ASF), sponsored by the <a href="https://incubator.apache.org">
    Apache Incubator</a>. Incubation is required of all newly accepted projects
    until a further review indicates that the infrastructure,
    communications, and decision making process have stabilized in a
    manner consistent with other successful ASF projects. While
    incubation status is not necessarily a reflection of the
    completeness or stability of the code, it does indicate that the
    project has yet to be fully endorsed by the ASF.
</p>
<p>
    Copyright 2016, the Apache Software Foundation.<br/>
    Apache Pony Mail is a trademark of the Apache Software Foundation.
    Apache and the Apache feather are registered trademarks of the
    Apache Software Foundation.
</p>
</body></html>
