# incubator-ponymail-foal **Repository Path**: mirrors_apache/incubator-ponymail-foal ## Basic Information - **Project Name**: incubator-ponymail-foal - **Description**: Apache Pony Mail Foal (Next Generation Suite) - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-22 - **Last Updated**: 2025-10-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Apache Pony Mail Foal _Next-generation suite of services and tools for Apache Pony Mail (incubating)_ [![Linting](https://github.com/apache/incubator-ponymail-foal/actions/workflows/linting.yml/badge.svg)](https://github.com/apache/incubator-ponymail-foal/actions/workflows/linting.yml) [![Foal Type Tests](https://github.com/apache/incubator-ponymail-foal/actions/workflows/type-tests.yml/badge.svg)](https://github.com/apache/incubator-ponymail-foal/actions/workflows/type-tests.yml) [![Unit Tests](https://github.com/apache/incubator-ponymail-foal/actions/workflows/unittest.yml/badge.svg)](https://github.com/apache/incubator-ponymail-foal/actions/workflows/unittest.yml) [![Integration Tests](https://github.com/apache/incubator-ponymail-foal/actions/workflows/integration-tests.yml/badge.svg)](https://github.com/apache/incubator-ponymail-foal/actions/workflows/integration-tests.yml) This repository aims to contain the next generation of Apache Pony Mail, a pure Python version of Apache Pony Mail with support for ElasticSearch 7.x and above. ## New features in Foal: Among other things, Foal sports the following new features: * Improved archiver and import tools * New, sleeker UI for the end user * Migration tools for moving to Foal * 100% Python backend, no Lua required * In-place editing of emails via web UI ## Installation Guide Please see the [installation documentation](INSTALL.md) for setup instructions. ### Current setup requirements: * An operating system, such as: * Linux * FreeBSD * Windows * Mac OS * Python 3.8 or higher with dependencies from `requirements.txt` in tools/ and server/ as needed. * Web server with proxy capabilities for the UI. * ElasticSearch 7.x or higher. ### Migration disclaimer: _While compatible with the original Pony Mail, this will not be a drop-in replacement. Migration of the old database is required, and most older ID generators have been dropped in favor of collision-secure generators._ ### Known Limitations: * Emails are filed according to the Date: header rather than arrival time. This can cause emails to appear in the wrong month or year or even be future-dated. * While the underlying database can handle any number of emails a month, the UI and much of the API do not scale well beyond 10,000 emails per month per list. * Re-archiving/importing a previously hidden email will unhide it in the archive. #### Known limitations when migrating from older Pony Mail instances: * The database entry is entirely replaced if an email is re-imported or re-archived after a migration. This can result in the loss of attributes such as alternate Permalinks. * The migration tool can drop Permalinks if two existing entries point to a sufficiently similar email * The migration tool does not fix up badly parsed message IDs etc * There is no longer a 1-to-1 relationship between mbox and source entries. This can result in orphan source entries, which has implications for privacy redaction. * Header parsing is stricter than before; some unusual message IDs are not handled correctly. This affects using Foal as a replacement for Apache mod_mbox mail archives.