PHPackages                             fnn/fnn-powermail-altcha - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Security](/categories/security)
4. /
5. fnn/fnn-powermail-altcha

ActiveTypo3-cms-extension[Security](/categories/security)

fnn/fnn-powermail-altcha
========================

Altcha Captcha for Powermail - Accessible and GDPR compliant proof-of-work (pow) captcha for powermail, no external service required

v12.0.0(1w ago)03.2k↑541.7%4[2 issues](https://github.com/599media/fnn_powermail_altcha/issues)MITPHPPHP &gt;= 8.2 &lt;= 8.4

Since Jul 4Pushed 1w agoCompare

[ Source](https://github.com/599media/fnn_powermail_altcha)[ Packagist](https://packagist.org/packages/fnn/fnn-powermail-altcha)[ Docs](https://599media.de)[ RSS](/packages/fnn-fnn-powermail-altcha/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependencies (8)Versions (8)Used By (0)

fnn\_powermail\_altcha
======================

[](#fnn_powermail_altcha)

**Title:** 599media Powermail Altcha

**Description:**Altcha spam protection for Powermail forms. This extension integrates the Altcha library to add challenge/response spam protection to Powermail forms.

After installation, a new element called “Altcha Spam Protection” is available in Powermail among the available field types.

To activate spam protection, simply add this field to the desired form. As soon as a Powermail form contains an active “Altcha Spam Protection” field, the Altcha widget is automatically rendered at exactly this point in the frontend.

The visitor then sees the Altcha widget. This additional validation effectively prevents automated bots, while the user experience remains as smooth as possible for real users.

---

Overview
--------

[](#overview)

- **Extension-Key:** `fnn_powermail_altcha`
- **Version:** 12.0.0
- **Author:** 599media Dev-Team (599media GmbH)
- **License:** MIT
- **Category:** Service
- **Dependencies:**
    - TYPO3 ≥ 12.4.0 – 13.4.99
    - PHP ≥ 8.2.0 – 8.4.99
    - Powermail ≥ 12.5.3 – 13.99.99

---

Installation
------------

[](#installation)

### Install extension via ZIP file

[](#install-extension-via-zip-file)

Installation can now only be performed using Composer.

### Install extension via composer command

[](#install-extension-via-composer-command)

1. Go to your folder where the root composer.json file is located
2. Type: composer require fnn/fnn-powermail-altcha to get the latest version that runs on your TYPO3 version.
3. Run 'Analyze database' and create the 'table tx\_fnnpowermailaltcha\_domain\_model\_challenge'
4. Go to your rootpage, open the TypoScript record and add 'Powermail Altcha' to 'include TypoScript sets'
5. Clear backend cache

---

Configuration
-------------

[](#configuration)

### TypoScript

[](#typoscript)

#### Constants

[](#constants)

`Configuration/TypoScript/constants.typoscript`

```
plugin.tx_fnn_powermail_altcha {
    # HMAC key (random character string)
    **IMPORTANT: For security, you must generate a unique key for your installation and replace the placeholder below.**
    hmacKey = [YOUR_UNIQUE_KEY_HERE]

    # Maximum number for the challenge
    maxNumber = 999999

    # Expiry time in seconds (0 = 24 hours)
    expires = 0

    # Hide Altcha logo (0 = show, 1 = hide)
    hideLogo = 0

    # Hide altcha footer (0 = show, 1 = hide)
    hideFooter = 0

    # Validierungstyp: off, onfocus, onload, onsubmit
    validation = off

    # You can configure Altcha messages yourself at this point.
    labels {
        error     = LLL:EXT:fnn_powermail_altcha/Resources/Private/Language/locallang.xlf:altchaWidget.error
        expired   = LLL:EXT:fnn_powermail_altcha/Resources/Private/Language/locallang.xlf:altchaWidget.expired
        label     = LLL:EXT:fnn_powermail_altcha/Resources/Private/Language/locallang.xlf:altchaWidget.label
        verified  = LLL:EXT:fnn_powermail_altcha/Resources/Private/Language/locallang.xlf:altchaWidget.verified
        verifying = LLL:EXT:fnn_powermail_altcha/Resources/Private/Language/locallang.xlf:altchaWidget.verifying
        waitAlert = LLL:EXT:fnn_powermail_altcha/Resources/Private/Language/locallang.xlf:altchaWidget.waitAlert
    }
}

```

#### Setup

[](#setup)

`Configuration/TypoScript/setup.typoscript`

```
plugin.tx_powermail {
    view {
        # The Altcha widget is rendered via a fluid partial.
        # A low number was selected to enable overwriting without major adjustments.
        partialRootPaths {
            5 = EXT:fnn_powermail_altcha/Resources/Private/Templates/Powermail/Partials/
        }
    }
    settings {
        setup {
            spamshield {
                methods {
                    2025 {
                        # The spam check can be activated or deactivated here.
                        _enable = 1
                    }
                }
            }
        }
    }
}

```

### TSConfig

[](#tsconfig)

The required TSConfig is loaded automatically after installation of the extension.

---

Changelog
---------

[](#changelog)

All changes can be found in the ChangeLog file. Version 10.0.0 (initial release) and future updates are documented there.

---

Support &amp; Contact
---------------------

[](#support--contact)

- Author: Dev-Team @ 599media GmbH
- E-Mail:
- Homepage:

---

License (MIT)
-------------

[](#license-mit)

The complete license information can be found here.

Additional license information:

This extension contains the ***altcha-org/altcha*** library, which is licensed under a separate MIT license. The complete license text of the Altcha library can be found in the file ***Vendor/altcha-lib-php/LICENSE.txt*** .

---

Functionality (simplified)
--------------------------

[](#functionality-simplified)

```
                         ┌─────────────────────────┐
                         │     TYPO3 Frontend      │
                         │                         │
                         │  Powermail form page    │
                         └───────────┬─────────────┘
                                     │
                                     ▼
             ┌────────────────────────────────────────────────┐
             │  Render partial „AltchaSpamProtection.html“    │
             │                                                │
             │  • execute AltchaSpamProtectionViewHelper      │
             │    AltchaService::createChallenge()            │
             └───────────────────────┬────────────────────────┘
                                     │
                                     ▼
             ┌────────────────────────────────────────────────┐
             │  AltchaService                                 │
             │  • generates random number (maxNumber)         │
             │  • calculates HMAC signature (hmacKey)         │
             │  • Saves record in DB (Challenge, expires)     │
             │                                                │
             │  challenge + signature back to Widget          │
             └───────────────────────┬────────────────────────┘
                                     │
                                     ▼
             ┌────────────────────────────────────────────────┐
             │  Browser (Client)                              │
             │  ┌──────────────────────────────────────────┐  │
             │  │ altcha.min.js:                           │  │
             │  │  • displays interactive captcha          │  │
             │  │  • User solves task                      │  │
             │  │  • Payload is packed (response)          │  │
             │  └──────────────────────────────────────────┘  │
             │   Form submit with Altcha payload              │
             └───────────────────────┬────────────────────────┘
                                     │
                                     ▼
             ┌────────────────────────────────────────────────┐
             │  Powermail Spamshield (AltchaMethod)           │
             │  • execute AltchaService->verifySolution()     │
             └───────────────────────┬────────────────────────┘
                                     │
                                     ▼
             ┌────────────────────────────────────────────────┐
             │  AltchaService                                 │
             │  • validate payload with                       │
             │    Altcha::verifySolution()                    │
             │                                                │
             │  result back to AltchaMethod                   │
             └────────────────────────────────────────────────┘

```

---

Note
----

[](#note)

Ignore the folder Vendor/altcha-lib-php. Only the complete source code of the external Altcha library is located there in order to bypass a Composer installation on the TER platform. All further adjustments and configurations refer to the Classes/ directory and the TYPO3-specific configuration files.

With a Composer installation, the library is installed by Composer.

Thank you for your support
--------------------------

[](#thank-you-for-your-support)

- Andreas Kießling

###  Health Score

50

—

FairBetter than 95% of packages

Maintenance98

Actively maintained with recent releases

Popularity25

Limited adoption so far

Community5

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~59 days

Total

7

Last Release

7d ago

Major Versions

v10.0.5 → v12.0.02026-06-26

PHP version history (2 changes)v10.0.0PHP &gt;= 7.4 &lt;= 8.4

v12.0.0PHP &gt;= 8.2 &lt;= 8.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/8f95d73846cbc8e7e83a3e957ffd1b66a606c2b74377dc1094f1a076f830d61b?d=identicon)[599media](/maintainers/599media)

---

Tags

typo3gdpr

### Embed Badge

![Health badge](/badges/fnn-fnn-powermail-altcha/health.svg)

```
[![Health](https://phpackages.com/badges/fnn-fnn-powermail-altcha/health.svg)](https://phpackages.com/packages/fnn-fnn-powermail-altcha)
```

###  Alternatives

[pagemachine/typo3-formlog

Form log for TYPO3

23238.6k8](/packages/pagemachine-typo3-formlog)[netresearch/rte-ckeditor-image

Image support in CKEditor for the TYPO3 ecosystem - by Netresearch

611.1M8](/packages/netresearch-rte-ckeditor-image)[aimeos/aimeos-typo3

Professional, full-featured and high performance TYPO3 e-commerce extension for online shops and complex B2B projects

1.5k94.0k6](/packages/aimeos-aimeos-typo3)[leuchtfeuer/secure-downloads

"Secure Download": Apply TYPO3 access rights to ALL file assets (PDFs, TGZs or JPGs etc. - configurable) - protect them from direct access.

23255.5k1](/packages/leuchtfeuer-secure-downloads)[friendsoftypo3/visual-editor

TYPO3 CMS Visual Editor - Brings a modern WYSIWYG editing experience to TYPO3 CMS.

576.1k2](/packages/friendsoftypo3-visual-editor)[leuchtfeuer/locate

Locate - The users country, preferred language and other facts will be detected. Depending on configurable rules the user can be redirected to other languages or pages. Locate also provides geo blocking for configurable pages in configurable countries.

1186.6k](/packages/leuchtfeuer-locate)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
