This release is a pre-release and may not be stable for production use.
plone.formblock
A Plone add-on supporting the creation of forms inside blocks.
Features
Send submissions by email
When the Send action is enabled on a form block, each submission is emailed to the configured recipients. The subject, sender and recipients are configured on the block, and the submitted values are rendered into the message body.
Store submissions
When the Store data action is enabled, each submission is stored on the content object. Stored submissions can be reviewed, exported to CSV and cleared directly from the form block editor in Volto.
Captcha support
Captcha support requires a specific name adapter that implements ICaptchaSupport. This product contains implementations for:
- HCaptcha (plone.formwidget.hcaptcha)
- Google ReCaptcha (plone.formwidget.recaptcha)
- Custom questions and answers (collective.z3cform.norobots)
- Honeypot (collective.honeypot)
Each implementation must be included, installed and configured separately.
To include one implementation, you need to install the egg with the needed extras_require:
- plone.formblock[recaptcha]
- plone.formblock[hcaptcha]
- plone.formblock[norobots]
- plone.formblock[honeypot]
During the form post, the token captcha will be verified with the defined captcha method.
Honeypot configuration
If honeypot dependency is available in your installation, the honeypot validation is enabled and selectable in forms.
Default field name is protected_1 and you can change it with an environment variable. See the collective.honeypot configuration for details.
Attachments upload limits
Forms can have one or more attachment field to allow users to upload some files.
These files will be sent via mail, so it could be a good idea setting a limit to them. For example if you use GMail as mail server, you can't send messages with attachments > 25MB.
There is an environment variable that you can use to set that limit (in MB):
export FORM_ATTACHMENTS_LIMIT=25
By default this is not set.
The upload limit is also passed to the frontend in the form data with the attachments_limit key.
Content-transfer-encoding
It is possible to set the content-transfer-encoding for the email body, settings the environment variable MAIL_CONTENT_TRANSFER_ENCODING:
export MAIL_CONTENT_TRANSFER_ENCODING=base64
This is useful for some SMTP servers that have problems with quoted-printable encoding.
By default the content-transfer-encoding is quoted-printable as overridden in Products.MailHost
Email subject templating
You can also interpolate the form values to the email subject using the field id, in this way: ${field_name}
Header forwarding
It is possible to configure some headers from the form POST request to be included in the email's headers by configuring the httpHeaders field in your Volto block.
The @plone/volto-form-block package allows the following headers to be forwarded:
HTTP_X_FORWARDED_FORHTTP_X_FORWARDED_PORTREMOTE_ADDRPATH_INFOHTTP_USER_AGENTHTTP_REFERER
Installation
Install plone.formblock with uv:
uv add plone.formblock
Or with pip:
pip install plone.formblock
Create the Plone site.
make create-site
Contribute
Prerequisites ✅
- An operating system that runs all the requirements mentioned.
- uv
- Make
- Git
- Docker (optional)
Installation 🔧
-
Clone this repository.
git clone git@github.com:plone/form-block.git cd form-block/backend
-
Install this code base.
make install
License
The project is licensed under GPLv2.
Credits and acknowledgements 🙏
This add-on is built on top of the awesome collective.volto.formsupport developed by RedTurtle Technology.
The current version of the codebase was developed by kitconcept GmbH and sponsored by the Fachhochschule Nordwestschweiz.
Generated using Cookieplone (2.0.0b3) and cookieplone-templates (6678734) on 2026-06-10 18:43:35.112495. A special thanks to all contributors and supporters!
Metadata
Release files for plone.formblock 1.0.0a3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| plone_formblock-1.0.0a3.tar.gz | 138.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| plone_formblock-1.0.0a3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 231.5 kB
Release files / plone_formblock-1.0.0a3.tar.gz
| Download URL | plone_formblock-1.0.0a3.tar.gz |
|---|---|
| Size | 138.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
00efa055eb83bb424570e5c19c393941df548bb3f5894f2a5ead6783419f454f
|
|
BLAKE2b-256 checksum How to use checksums |
dffc890be2b7e96232a507345cf9caaefaf6495abb24411383ab469aa923bc94
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.27 {"installer":{"name":"uv","version":"0.11.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / plone_formblock-1.0.0a3-py3-none-any.whl
| Download URL | plone_formblock-1.0.0a3-py3-none-any.whl |
|---|---|
| Size | 93.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
74dbba615b221b80ea51dbfd3ba69706fea062a3b49e019fac4a6c68918f6ce9
|
|
BLAKE2b-256 checksum How to use checksums |
7332c8b1d61849c77402b8ad427f292dd4a93e701c387d1f9c64ea3ef7b2704c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.27 {"installer":{"name":"uv","version":"0.11.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|