FormTemplateProcessorMailer by cnsknight

Template fields define web contact forms. Can send forms as emails with or without PHPMailer. Can save forms as pages. Allows custom rendering. Features working demo HTML5 form. Use on static page and/or on any page via overlay.

ProcessWire FormTemplateProcessorMailer module


Creates and processes ProcessWire templates into HTML forms.
Can send email and/or save the submission to a page in your site.
Mail option via native mail() or with PHPMailer via mail() or SMTP.
Includes POC HTML5 contact form in a static page and via async modal/overlay.

For more information on Ryans original POC:,75.0.html

Designed and tested on pw 2.3.0


1. In your site/modules/ directory:
a. Install* FormTemplateProcessorMailer.module
b. If using PHPMailer, navigate to the modules/FormTemplateProcessorMailer directory in a terminal and issue:
$ git clone PHPMailer
(assumes you have git installed)

* 1. Login into ProcessWire admin > Modules.
2. Click "Check for new modules".
3. Click "install" next to the new <module-name>.

2. For the demo, copy all of the files in demo_files/ to appropriate locations
3. Follow the Usage notes here.


1. In admin, create the fields you want to be part of the form.
Our /contact/ demo requires:
-subject (the demo uses a hidden input but you can also set during runtime module config)
-sender_name [required]
-email [required] (a built-in field under admin > setup > fields > filters)
-message [required]
Additionally, all of these fields are tagged with contactForm - See demo_files/screenshots/.
2. Create a new template and assign these fields. Note that a physical template file is not needed here.
3. If you will be using a static contact page, choose or create a separate template that will hold the form widget.
4. And then add a page for this template. The demo uses a page called /contact/. See demo_fields/contact.php
for example usage of the contact page.
5. Adjust the settings eg toName and toAddress in contact-form.php and contact.php, and follow the notes
at the bottom of contact.php

===== (click on contact)

Install and use modules at your own risk. Always have a site and database backup before installing new modules.

Twitter updates

  • Adding custom actions to ProcessWire image fields in the admin, part of this week’s dev branch additions: More
    27 January 2023
  • ProcessWire 3.0.210 new main/master version released— More
    6 January 2023
  • ProcessWire 3.0.209: Core updates and an interesting AI that knows ProcessWire– More
    30 December 2022

Latest news

  • ProcessWire Weekly #456
    The 456th issue of ProcessWire Weekly covers latest core updates, introduces a new third party module called TextformatterRockDown, and more. Read on! / 4 February 2023
  • ProcessWire 3.0.210 new main/master version
    140 commits, 55 resolved issues, dozens of new features, eight contributors, and five new pull requests make yet another great new version of ProcessWire.
    Blog / 6 January 2023
  • Subscribe to weekly ProcessWire news

“We were really happy to build our new portfolio website on ProcessWire! We wanted something that gave us plenty of control on the back-end, without any bloat on the front end - just a nice, easy to access API for all our content that left us free to design and build however we liked.” —Castus, web design agency in Sheffield, UK