Skip to main content

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

Run the following in your favorite python environment.

pip install laelaps

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 podman-compose

Make sure you have installed Podman. Start the laelaps container with (make sure there is a config.toml in the root of the project):

podman-compose up

Stop laelaps with ctrl+C

Clean up with:

podman-compose down

Develop

To install dev/test tools run (in the root directory)

pip install .[test]

Running linting and tests is done by running:

bash format.sh

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

laelaps-0.0.4.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

laelaps-0.0.4-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file laelaps-0.0.4.tar.gz.

File metadata

  • Download URL: laelaps-0.0.4.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for laelaps-0.0.4.tar.gz
Algorithm Hash digest
SHA256 6f181ce0bc1691857b7bb61d4cb004a2b09ef7508c1764824831f8cab1f1e676
MD5 2bab08d8ab126a2a91ebb9e93e2ebe3e
BLAKE2b-256 de9eeec42d1516252e5f92bec794543cd30901c7f322982ace51e38e2c4edb59

See more details on using hashes here.

File details

Details for the file laelaps-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: laelaps-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for laelaps-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 d323c1439a136c32c027c2da27c51eb1e98522352e0fb85f81b3b64bb1ca7383
MD5 1a12a2ddebf5af6da1baef97da050e6a
BLAKE2b-256 ea771a9bbd4cb567ad72227c626dfe7146ee624bab7f3e20c6705e30931c06e9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page