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

  • New TinyMCE 6.2.0 Inputfield released for ProcessWire— More
    28 October 2022
  • This week we take a look at a new rich text editor for ProcessWire, why we chose it, some highlights, screenshots, and why we think you’ll like it— More
    21 October 2022
  • This week we have ProcessWire 3.0.206 on the dev branch and a new version of the ProDevTools UserActivity module, which we'll take a closer look at in this post— More
    7 October 2022

Latest news

  • ProcessWire Weekly #446
    In the 446th issue of ProcessWire Weekly we're going to check out the latest weekly updates, introduce a new third party module called AlpineJS, and more. Read on! / 26 November 2022
  • New rich text editor for ProcessWire
    This week we take a look at a new rich text editor for ProcessWire, why we chose it, some highlights, screenshots, and why we think you’ll like it.
    Blog / 21 October 2022
  • Subscribe to weekly ProcessWire news

I just love the easy and intuitive ProcessWire API. ProcessWire rocks!” —Jens Martsch, Web developer