This is the official repository of the TYPO3 extension powermail! Powermail is a well-known, editor-friendly, powerful and easy mailform extension for TYPO3
einpraegsam Merge pull request #371 from julianhofmann/issue_370
Changed ViewHelper from vh:string.RawAndRemoveXss to vh:string.escapeLabels
Latest commit 4809431 Dec 10, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Classes [TASK] Cleanup Oct 26, 2018
Configuration [FEATURE] Add a disclaimed notification Oct 24, 2018
Documentation Changed ViewHelper from vh:string.RawAndRemoveXss to vh:string.escape… Dec 10, 2018
Resources [FEATURE] Add a disclaimed notification Oct 24, 2018
Tests [TASK] Replace the old test link with a new one with 64 characters now Oct 25, 2018
.editorconfig Add .editorconfig so editors/IDEs can configure themselves automatically Jul 3, 2018
.gitattributes [TASK] Exclude non-production files from Git archives Mar 1, 2017
.gitignore [TASK] Deliver testing framework with composer.json and cleanup unitt… Dec 22, 2017
composer.json [TASK] Adjust license to GPL 2 or later Feb 3, 2018
ext_conf_template.txt [TASK] GDPR: Disable ip logging by default May 7, 2018
ext_emconf.php [TASK] Release preperations Oct 25, 2018
ext_icon.png [TASK] Add ext_icon.png Apr 18, 2016
ext_icon.svg [BUGFIX] Export module broken in TYPO3 6.2 Apr 4, 2016
ext_localconf.php [FEATURE] Add a disclaimer link to sender mail Oct 24, 2018
ext_tables.php [TASK] Revert moveage of allowTableOnStandardPages back to ext_tables… Jan 14, 2018
ext_tables.sql Add db indices for the page and field tables Aug 16, 2018
ext_typoscript_setup.txt [BUGFIX] Move RTE configuration from static extension TS to Main Typo… Aug 3, 2017
phpunit.xml.dist [TASK] Add a bootstrap.php for unit tests which is compatible with T3… Dec 25, 2017
readme.md Fixed typo Oct 26, 2018

readme.md

TYPO3 Extension powermail

Powermail is a well-known, editor-friendly, powerful and easy to use mailform extension for TYPO3 with a lots of features (spam prevention, marketing information, optin, ajax submit, diagram analysis, etc...)

1. Installation

Please look at the manual for a detailed documentation at official extension documentation of TYPO3

Quick guide:

  • Just install this extension - e.g. composer require in2code/powermail or download it or install it with the classic way (Extension Manager)
  • Clear caches
  • Add a new form (with one or more pages and with some fields to a page or a folder)
  • Add a new pagecontent with type "powermail" and choose the former saved form
  • That's it

2. Administration corner

2.1. Versions and support

Powermail TYPO3 PHP Support/Development
7.x 8.7 - 9.x 7.0 - 7.x Features, Bugfixes, Security Updates
6.x 8.7 - 9.x 7.0 - 7.x Support dropped
5.x 8.7 - 9.x 7.0 - 7.x Support dropped
4.x 7.6 - 8.7 5.5 - 7.2 Bugfixes, Security Updates
3.x 7.6 - 8.7 5.5 - 7.2 Security Updates
2.18 - 2.25 6.2 - 7.6 5.5 - 7.0 Security Updates
2.2 - 2.17 6.2 - 7.6 5.3 - 7.0 Support dropped

2.2. Changelog

Please look into the official extension documentation in changelog chapter

2.3. Suggested Extensions for powermail

  • email2powermail Automatically convert emails to a link to a powermail form Link
  • powermailrecaptcha Google recaptcha Link
  • invisiblerecaptcha Google invisible recaptcha Link
  • powermailextended Is just an example extension how to extend powermail with new fields or use signals Link
  • powermail_cond Add conditions (via AJAX) to powermail forms for fields and pages Link
  • powermail_fastexport Extend powermail for faster export to .xlsx / .csv files. This is useful if you have many records to be exported. Link

2.4. Conflicts

  • At the moment powermail does not support TYPO3 workspaces (See in2publish as an alternative to workspaces)
  • The extensions compatibility6 and compatibility7 could conflict with powermail

2.5. Future plans

There are some ideas for future developments (like removing jQuery dependency, etc...) but there is no final roadmap. Nevertheless it's planned to release a version for TYPO3 10 (TYPO3 9 is of course already supported).

2.6. Product Owner

The product owner and author of the extension is Alex Kellner from in2code. Beside that every in2code colleague is allowed to support further development if she/he wants. In addition there are a lot of other contributors that helped to improve the extension with their Pull Requests - thank you for that!

2.7. Release Management

Powermail uses semantic versioning which basically means for you, that

  • bugfix updates (e.g. 1.0.0 => 1.0.1) just includes small bugfixes or security relevant stuff without breaking changes.
  • minor updates (e.g. 1.0.0 => 1.1.0) includes new features and smaller tasks without breaking changes.
  • major updates (e.g. 1.0.0 => 2.0.0) normally includes basic refactoring, new features and also breaking changes.

We try to mark breaking changes in the changelog with a leading !!! and try to explain what to do on an upgrade (e.g. VieHelper name changed from vh:foo to vh:bar in templates).

In addition powermail is using Git Flow as Git workflow. That means that there is one branch which contains new and untested code: develop. The branch master only contains tested code which will also be tagged from time to time.

Based on release early, release often we try to release new versions as often as possible into TER and to github/packagist.

2.8. Composer and Packagist

This extension is, of course available on packagist. You can install it via composer with composer require in2code/powermail

And of course you don't need to run your TYPO3-environment in composer mode. Powermail works also in classic mode.

2.9. Automatic Testing

Behaviour tests

There is a huge testparcours that have to be passed before every release. For example there is an automatic test where the browser tries to submit 18 different strings and numbers to a field that accepts only phone numbers to test serverside validation. After that the same process is done for clientside valiation. There are also some smaller tests like "Is it possible to submit a form on a page where two different forms are stored?".

See readme.md for some more information about behat and selenium tests on powermail.

Unit tests

At the moment powermail offers 543 (and growing) unit tests that have to be passed before every release. See more information about unit tests or code coverage in powermail in the readme.md

2.10. Code quality

Beside respecting PSR-2 and TYPO3 coding guidelines, it's very important for the project to leave a file cleaner as before. Especially because it's a really large extension with a lot of functionality and a history of 10 years (!) and of course some technical debts, that have to be fixed step by step (e.g. moving logic completely to Domain folder, ...). Look at Sonarqube for some interesting details on that.

2.11. Contribution

Pull requests are welcome in general! Nevertheless please don't forget to add a description to your pull requests. This is very helpful to understand what kind of issue the PR is going to solve.

  • Bugfixes: Please describe what kind of bug your fix solve and give us feedback how to reproduce the issue. We're going to accept only bugfixes if I can reproduce the issue.
  • Features: Not every feature is relevant for the bulk of powermail users. In addition: We don't want to make powermail even more complicated in usability for an edge case feature. Please discuss a new feature before.

2.12. Development

Compile and minify (uglify) JavaScript, compress CSS:

$ cd Resources/Private
$ npm install
$ ./node_modules/.bin/gulp

3. Screenshots

3.1. Example form with bootstrap classes:

Example form

3.2. Backend module mail list:

Backend Module

4. What's new

4.1. What's new in powermail 7.0

  • A disclaimer functionality was added to sendermail and optinmail. So now sender can delete all their data from the server (really delete) by clicking a link in the mail.

4.2. What's the difference between version 5 and 4

  • A large refactoring
    • For TYPO3 9.x
    • And for PHP 7.0 - 7.2
  • Migration for powermail 2.x was removed - see my post how to upgrade from 2.x to 5.x

4.3. Whats the difference between version 4 and 3

  • A small refactoring of the mail related service classes
  • Add a possibility to create columns in a form for e.g. bootstrap
  • TYPO3 7.6 is still supported in this major version

4.4. Whats the difference between version 3 and 2

  • General update for TYPO3 7.6 and 8.x
  • Table name correction from plural to singular (..mails => ..mail, ..fields => ..field)
  • Add bootstrap
  • Remove old form converter (converted 1.x to 2.x forms)
  • Enable table garbage collector scheduler tasks per default
  • Add DataProcessors to change mail object before it's persisted or used in mails
  • Own spamshield methods could be registered via TypoScript now
  • Refactoring of upload function
  • Add signals to ValidationDataAttributeViewHelper, PrefillFieldViewHelper and PrefillMultiFieldViewHelper
  • Some code cleanup