Catchall email alias monitor and verifier
Project description
Laelaps
Laelaps is an IMAP monitoring application that is capable of verifying signed aliases. This is particularly useful when using different catchall-based aliases. Catchall-based aliases are a convenient way to generate unique email addresses for online accounts and reduce the impact of potential data leaks. However with catchall mode turned on there is a risk of attracting lots of spam.
Laelaps solves this problem by verifying whether an alias is indeed generated by the user and not by some other random party such as a spammer. This is achieved without registering the known aliases by using cryptographic signatures within generated aliases themselves. In practice a user generates an alias using a private key and the TeumessianFox browser extension and Lealaps will separate spam from emails that are send to genuine aliases. This way the user can easily generate new aliases and still be in full control of messages send to her/his inbox.
As a bonus, albeit rather experimental, Laelaps can perform other checks on incoming email messages by analyzing the message headers, these checks include:
- Verifying whether SPF, DMARC and DKIM passed.
- Possibility to register an aliases for a specific domain that is allowed to send messages only to this specific alias.
- Check wether the email was send with TLS enabled
- Check wether the sending email address exists
Laelaps moves incoming messages either to an inbox folder for messages that passed validation or to a folder that failed validation.
Install
Install from pypi
pip install laelaps
Setting up with UV for local development
- Create a virtual environment:
uv venv .venv
source .venv/bin/activate
- Install dependencies:
uv pip sync pyproject.toml
To include test/dev dependencies:
uv pip sync --extra test pyproject.toml
Configure
Create a config.toml with the following contents in your working directory:
[imap]
host = "your.imap.server.host"
username = "yourImapUserName"
password = "ImapPassword"
mailbox = "FolderToMonitor"
[encryption]
# Generate yourself and keep safe!
key = "32CharacterStringEncryptionKey00"
[user]
own_domains = [ "list.of", "catchall.domains"]
target_folder_verified = "FolderToForVerifiedEmails"
target_folder_failed_validation = "FolderToForFailedVerificationEmails"
Configuring using environment variables
When running Laelaps in a container, it may be useful to configure it using environment variables. If the configuration file cannot be found Laelqaps will look for the following variables:
LAELAPS_IMAP__HOST=your.imap.server.host
LAELAPS_IMAP__MAILBOX=FolderToMonitor
LAELAPS_IMAP__USERNAME=yourImapUserName
LAELAPS_IMAP__PASSWORD=ImapPassword
LAELAPS_USER__OWN_DOMAINS=list.of,own.domains
LAELAPS_USER__TARGET_FOLDER_VERIFIED=FolderToForVerifiedEmails
LAELAPS_USER__TARGET_FOLDER_FAILED_VALIDATION=FolderToForFailedVerificationEmails
LAELAPS_ENCRYPTION__KEY=32CharacterStringEncryptionKey00
Run
Start laelaps with:
python -m laelaps
Stop laelaps with ctrl+C
Run with Docker
Make sure to have a configuration ready.
From the root of the repository run
docker compose up
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file laelaps-0.0.6.tar.gz.
File metadata
- Download URL: laelaps-0.0.6.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce8a57ee5248400e4e7bfe197a26eebc231f5760c5a3c897b2ff763e6a0fb83e
|
|
| MD5 |
423fa5df871e9f820dbcee0584c87ffe
|
|
| BLAKE2b-256 |
421fcf48acadd2e4f772864b8c556685cc983abeedafad11603260259dcfc276
|
File details
Details for the file laelaps-0.0.6-py3-none-any.whl.
File metadata
- Download URL: laelaps-0.0.6-py3-none-any.whl
- Upload date:
- Size: 8.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70a5cde911436d34917afed264409e7384d920cb8de794b3f133b627d17668c0
|
|
| MD5 |
a68cf8b05f2ff8733e00950d7608ca9f
|
|
| BLAKE2b-256 |
5228428833f201da09ed500d5676e9d397a8cbaf89315136b78869f649832513
|