# 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)_
[](https://github.com/apache/incubator-ponymail-foal/actions/workflows/linting.yml)
[](https://github.com/apache/incubator-ponymail-foal/actions/workflows/type-tests.yml)
[](https://github.com/apache/incubator-ponymail-foal/actions/workflows/unittest.yml)
[](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.