Skip to main content
Pre-release

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_FOR
  • HTTP_X_FORWARDED_PORT
  • REMOTE_ADDR
  • PATH_INFO
  • HTTP_USER_AGENT
  • HTTP_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 ✅

Installation 🔧

  1. Clone this repository.

    git clone git@github.com:plone/form-block.git
    cd form-block/backend
    
  2. 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!

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

plone_formblock-1.0.0a3.tar.gz (138.5 kB view details)

Uploaded Source

Built Distribution

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

plone_formblock-1.0.0a3-py3-none-any.whl (93.0 kB view details)

Uploaded Python 3

File details

Details for the file plone_formblock-1.0.0a3.tar.gz.

File metadata

  • Download URL: plone_formblock-1.0.0a3.tar.gz
  • Upload date:
  • Size: 138.5 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for plone_formblock-1.0.0a3.tar.gz
Algorithm Hash digest
SHA256 00efa055eb83bb424570e5c19c393941df548bb3f5894f2a5ead6783419f454f
MD5 a4dbcb4b3fe99b56200140a83019e35c
BLAKE2b-256 dffc890be2b7e96232a507345cf9caaefaf6495abb24411383ab469aa923bc94

See more details on using hashes here.

File details

Details for the file plone_formblock-1.0.0a3-py3-none-any.whl.

File metadata

  • Download URL: plone_formblock-1.0.0a3-py3-none-any.whl
  • Upload date:
  • Size: 93.0 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for plone_formblock-1.0.0a3-py3-none-any.whl
Algorithm Hash digest
SHA256 74dbba615b221b80ea51dbfd3ba69706fea062a3b49e019fac4a6c68918f6ce9
MD5 c91afda283a58785eec82b098950b42a
BLAKE2b-256 7332c8b1d61849c77402b8ad427f292dd4a93e701c387d1f9c64ea3ef7b2704c

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 Sentry Error logging StatusPage Status page