Main TypoScript

Constants Overview

Constants (should be prefixed with plugin.tx_powermail.settings.) Description Type Default
main.pid Storage PID: Save mails in a defined Page (normally set via Flexform) int+  
main.form Form Uid: Commaseparated list of forms to show (normally set via Flexform) text  
main.confirmation Confirmation Page Active: Activate Confirmation Page (normally set via Flexform) bool  
main.optin Double Optin Active: Activate Double Optin for Mail sender (normally set via Flexform) bool  
main.moresteps Morestep Active: Activate Morestep Forms (normally set via Flexform) bool  
validation.native Native Browser Validation: Validate User Input with HTML5 native browser validation on clientside bool 1
validation.client Native Browser Validation: JavaScript Browser Validation: Validate User Input with JavaScript on clientside bool 1
validation.server PHP Server Validation: Validate User Input with PHP on serverside bool 1
receiver.enable Receiver Mail: Enable Email to Receiver bool 1
receiver.attachment Receiver Attachments: Add uploaded files to emails bool 1
receiver.mailformat Receiver Mail Format: Change mail format options[both,html,plain] both
receiver.default.senderName Default Sender Name: Sendername if no sender name given text  
receiver.default.senderEmail Default Sender Email: Sender-email if no sender email given text  
receiver.overwrite.email Receiver overwrite Email: Commaseparated list of mail receivers overwrites flexform settings (e.g. receiver1@mail.com, receiver1@mail.com) text  
receiver.overwrite.name Receiver overwrite Name: Receiver Name overwrites flexform settings (e.g. Receiver Name) text  
receiver.overwrite.senderName Receiver overwrite SenderName: Sender Name for mail to receiver overwrites flexform settings (e.g. Sender Name) text  
receiver.overwrite.senderEmail Receiver overwrite SenderEmail: Sender Email for mail to receiver overwrites flexform settings (e.g. sender@mail.com) text  
receiver.overwrite.subject Receiver overwrite Mail Subject: Subject for mail to receiver overwrites flexform settings (e.g. New Mail from website) text  
receiver.overwrite.cc Receiver CC Email Addresses: Commaseparated list of cc mail receivers (e.g. rec2@mail.com, rec3@mail.com) text  
receiver.overwrite.bcc Receiver BCC Email Addresses: Commaseparated list of bcc mail receivers (e.g. rec2@mail.com, rec3@mail.com) text  
receiver.overwrite.returnPath Receiver Mail Return Path: Return Path for emails to receiver (e.g. return@mail.com) text  
receiver.overwrite.replyToEmail Receiver Mail Reply Mail: Reply Email address for mail to receiver (e.g. reply@mail.com) (Note: replyToName is also required for this feature) text  
receiver.overwrite.replyToName Receiver Mail Reply Name: Reply Name for mail to receiver (e.g. Mr. Reply) (Note: replyToEmail is also required for this feature) text  
receiver.overwrite.priority Receiver Mail Priority: Set mail priority for mail to receiver (e.g. 3) options[1,2,3,4,5] 3
receiver.senderHeader.email Server-Mail: If set, the Mail-Header Sender is set (RFC 2822 - 3.6.2 Originator fields) text  
receiver.senderHeader.name Server-Mail: If set, the Mail-Header Sender is set (RFC 2822 - 3.6.2 Originator fields) text  
sender.enable Sender Mail: Enable Email to Sender bool 1
sender.attachment Sender Attachments: Add uploaded files to emails bool 0
sender.mailformat Sender Mail Format: Change mail format options[both,html,plain] both
sender.addDisclaimerLink Add disclaimer link: Add disclaimer link to the sender email (also in optin mail) bool 1
sender.default.senderName Default Sender Name: Sendername if no sender name given text Powermail
sender.overwrite.email Sender overwrite Email: Commaseparated list of mail receivers overwrites flexform settings (e.g. receiver1@mail.com, receiver1@mail.com) text  
sender.overwrite.name Sender overwrite Name: Receiver Name overwrites flexform settings (e.g. Receiver Name) text  
sender.overwrite.senderName Sender overwrite SenderName: Sender Name for mail to sender overwrites flexform settings (e.g. Sender Name) text  
sender.overwrite.senderEmail Sender overwrite SenderEmail: Sender Email for mail to sender overwrites flexform settings (e.g. sender@mail.com) text  
sender.overwrite.subject Sender overwrite Mail Subject: Subject for mail to sender overwrites flexform settings (e.g. Thx for your mail) text  
sender.overwrite.cc Sender CC Email Addresses: Commaseparated list of cc mail receivers (e.g. rec2@mail.com, rec3@mail.com) text  
sender.overwrite.bcc Sender BCC Email Addresses: Commaseparated list of bcc mail receivers (e.g. rec2@mail.com, rec3@mail.com) text  
sender.overwrite.returnPath Sender Mail Return Path: Return Path for emails to sender (e.g. return@mail.com) text  
sender.overwrite.replyToEmail (Note: replyToName is also required for this feature) Sender Mail Reply Mail: Reply Email address for mail to sender (e.g. reply@mail.com) text  
sender.overwrite.replyToName (Note: replyToEmail is also required for this feature) Sender Mail Reply Name: Reply Name for mail to sender (e.g. Mr. Reply) text  
sender.overwrite.priority Sender Mail Priority: Set mail priority for mail to sender (e.g. 3) options[1,2,3,4,5] 3
sender.senderHeader.email Server-Mail: If set, the Mail-Header Sender is set (RFC 2822 - 3.6.2 Originator fields) text  
sender.senderHeader.name Server-Name: you can define a name along with the mail address (optional) text  
db.enable Mail Storage enabled: Store Mails in database bool 1
db.hidden Hidden Mails in Storage: Add mails with hidden flag (e.g. 1) bool 0
marketing.enable Enable Google Conversion: Enable JavaScript for google conversion - This is interesting if you want to track every submit in your Google Adwords account for a complete conversion. bool 0
marketing.google_conversion_id Enable Google Conversion: Enable JavaScript for google conversion - This is interesting if you want to track every submit in your Google Adwords account for a complete conversion. int+ 1234567890
marketing.google_conversion_label Google Conversion Label: Add your google conversion label (see www.google.com/adwords for details) text abcdefghijklmnopqrs
marketing.google_conversion_language Google Conversion Language: Add your google conversion language (see www.google.com/adwords for details) text en
misc.htmlForHtmlFields Allow html in html fields: Per default output of fields of type HTML is parsed through a htmlspecialchars() function to avoid Cross-Site-Scripting for security reasons. If you are aware of possible XSS-problems, caused by editors, you can enable it and your original HTML is shown in the Frontend. bool 0
misc.htmlForLabels Allow html in field labels: Per default labels are generated with htmlspecialchars() to prevent xss. This also disables links in labels. If you aware of possible XSS-problems, caused by editors, you can enable it. bool 0
misc.showOnlyFilledValues Show only filled values: If the user submits a form, even not filled values are viewable. If you only want to show labels with filled values, use this setting bool 1
misc.ajaxSubmit AJAX Submit Form: Submit Powermail Forms with AJAX (browser will not reload complete page) bool 0
misc.addQueryString Enable AddQueryString: Keep GET-params in form Action (e.g. to use powermail on a tx_news detail page) bool 0
misc.uploadFolder Misc Upload Folder: Define the folder where files should be uploaded with upload fields (e.g. fileadmin/uploads/) bool uploads/tx_powermail/
misc.uploadSize Misc Upload Filesize: Define the maximum filesize of file uploads in bytes (10485760 Byte -> 10 MB) int+ 10485760
misc.uploadFileExtensions Misc Upload Fileextensions: Define the allowed filetypes with their extensions for fileuploads and separate them with commas (e.g. jpg,jpeg,gif) text jpg,jpeg,gif,png,tif,txt,doc,docx,xls,xlsx,ppt,pptx,pdf,flv,mpg,mpeg,avi,mp3,zip,rar,ace,csv
misc.randomizeFileName Randomized Filenames: Uploaded filenames can be randomized to respect data privacy bool 1
misc.forceJavaScriptDatePicker Force JavaScript Datepicker: Per default html5 Date or Datetime format is used. If you don’t want to use it and want to have the same datepicker all over all browsers, you can enable this feature bool 0
misc.debugSettings Debug Settings: Show all Settings from TypoScript, Flexform and Global Config in Devlog bool 0
misc.debugVariables Debug Variables: Show all given Plugin variables from GET or POST in Devlog bool 0
misc.debugMail Debug Mails: Show all mail values in Devlog bool 0
misc.debugSaveToTable Debug Save to Table: Show all values if you want to save powermail variables to another table in Devlog bool 0
misc.debugSpamshield Debug Spamshield: Show Spamshield Functions in Devlog bool 0
spamshield.enable SpamShield Active: En- or disable Spamshield for Powermail bool 1
spamshield.factor Spamshield Spamfactor in %: Set limit for spamfactor in powermail forms in % (e.g. 85) int+ 75
spamshield.email Spamshield Notifymail: Admin can get an email if he/she wants to get informed if a mail failed. Let this field empty and no mail will be sent (e.g. admin@mail.com) text  
spamshield.emailTemplate Spamshield Notifymail Template: Template for notification Email to Admin text EXT:powermail/Resources/Private/Templates/Mail/SpamNotification.html
spamshield.senderEmail Spamshield Notifymail sender Email address: Define a specific Email address as sender of the notification Email text ‘powermail@’ + the TYPO3 host (e.g. powermail@www.example.com)
spamshield.logfileLocation Spamshield Log Template Location: Path of log file, ie. typo3temp/logs/powermail_spam.log, if empty, logging is deactivated text  
spamshield.logTemplate Spamshield Log Template: Template for entries written to log file text EXT:powermail/Resources/Private/Templates/Log/SpamNotification.html
captcha.image Captcha Background: Set own captcha background image (e.g. fileadmin/bg.png) text EXT:powermail/Resources/Private/Image/captcha_bg.png
captcha.font Captcha Font: Set TTF-Font for captcha image (e.g. fileadmin/font.ttf) text EXT:powermail/Resources/Private/Fonts/ARCADE.TTF
captcha.textColor Captcha Text Color: Define your text color in hex code - must start with # (e.g. #ff0000) text #444444
captcha.textSize Captcha Text Size: Define your text size in px (e.g. 24) int+ 32
captcha.textAngle Captcha Text Angle: Define two different values (start and stop) for your text random angle and separate it with a comma (e.g. -10,10) text -5,5
captcha.distanceHor Captcha Text Distance Hor: Define two different values (start and stop) for your text horizontal random distance and separate it with a comma (e.g. 20,80) text 20,80
captcha.distanceVer Captcha Text Distance Ver: Define two different values (start and stop) for your text vertical random distance and separate it with a comma (e.g. 30,60) text 30,60
javascript.addJQueryFromGoogle Include jQuery From Google: Add jQuery JavaScript (will be loaded from ajax.googleapis.com) bool 0
javascript.addAdditionalJavaScript Include additional JavaScrpt: Add additional JavaScript and CSS Files (form validation, datepicker, etc…) bool 1
javascript.powermailJQuery jQuery Source: Change jQuery Source - per default it will be loaded from googleapis.com text //ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js
styles.framework.numberOfColumns Number of columns for responsive frontend columns. 0 disables this function completely. int+ 0
styles.framework.rowClasses Framework classname(s) for containers to build rows text row
styles.framework.formClasses Framework classname(s) for form “form-horizontal” text -
styles.framework.fieldAndLabelWrappingClasses Framework classname(s) for overall wrapping container of a field/label pair e.g. “row form-group” text -
styles.framework.fieldWrappingClasses Framework classname(s) for wrapping container of a field e.g. “row form-group” text powermail_field
styles.framework.labelClasses Framework classname(s) for fieldlabels e.g. “col-md-2 col-md-3” text powermail_label
styles.framework.fieldClasses Framework classname(s) for fields e.g. “form-control” text -
styles.framework.offsetClasses Framework classname(s) for fields with an offset e.g. “col-sm-offset-2” text -
styles.framework.radioClasses Framework classname(s) especially for radiobuttons e.g. “radio” text radio
styles.framework.checkClasses Framework classname(s) especially for checkboxes e.g. “check” text checkbox

Setup

##################
# Frontend Plugin
##################
plugin.tx_powermail {
    view {
        templateRootPaths {
            0 = EXT:powermail/Resources/Private/Templates/
            1 = {$plugin.tx_powermail.view.templateRootPath}
        }
        partialRootPaths {
            0 = EXT:powermail/Resources/Private/Partials/
            1 = {$plugin.tx_powermail.view.partialRootPath}
        }
        layoutRootPaths {
            0 = EXT:powermail/Resources/Private/Layouts/
            1 = {$plugin.tx_powermail.view.layoutRootPath}
        }
    }

    # Modify localization of labels
#   _LOCAL_LANG {
#           default {
#                   confirmation_message = Are these values correct?
#           }
#           de {
#                   confirmation_message = Sind diese Eingaben korrekt?
#           }
#   }

    # Main settings
    settings {
        setup {

            main {
                pid = {$plugin.tx_powermail.settings.main.pid}
                form = {$plugin.tx_powermail.settings.main.form}
                confirmation = {$plugin.tx_powermail.settings.main.confirmation}
                optin = {$plugin.tx_powermail.settings.main.optin}
                moresteps = {$plugin.tx_powermail.settings.main.moresteps}
            }

            validation {
                # enable native HTML5 validation
                native = {$plugin.tx_powermail.settings.validation.native}

                # enable clientside validation
                client = {$plugin.tx_powermail.settings.validation.client}

                # enable serverside validation
                server = {$plugin.tx_powermail.settings.validation.server}

                unique {
                    # Enable unique check for {email}
                    #email = 1

                    # Enable a max limit of 3 times for the same entry for {event}
                    #event = 3
                }

                ##########################################################
                # CUSTOMVALIDATION EXAMPLE
                #
                # E.g. Validation was extended with Page TSconfig
                #           tx_powermail.flexForm.validation.addFieldOptions.100 = New Validation
                #
                # Register your Class and Method with TypoScript Setup
                #           plugin.tx_powermail.settings.setup.validation.customValidation.100 =
                #                   In2code\Powermailextended\Domain\Validator\ZipValidator
                #
                # Add method to your class
                #           validate100($value, $validationConfiguration)
                #
                # Define your Errormessage with TypoScript Setup
                #           plugin.tx_powermail._LOCAL_LANG.default.validationerror_validation.100 = Error happens!
                #
                # ##########################################################
                customValidation {
#                                   100 = In2code\Powermailextended\Domain\Validator\ZipValidator
                }
            }

            # All settings for mail to receiver
            receiver {
                enable = {$plugin.tx_powermail.settings.receiver.enable}

                # Following settings are normally set via Flexform
                email =
                subject =
                body =

                # add file attachments from upload fields
                attachment = {$plugin.tx_powermail.settings.receiver.attachment}

                # html, plain, both
                mailformat = {$plugin.tx_powermail.settings.receiver.mailformat}

                default {
                    senderName = TEXT
                    senderName.value = {$plugin.tx_powermail.settings.receiver.default.senderName}

                    senderEmail = TEXT
                    senderEmail.value = {$plugin.tx_powermail.settings.receiver.default.senderEmail}
                }

                # Predefine some receivers - selection in backend could be done via page TSConfig:
                #           tx_powermail.flexForm.predefinedReceivers.addFieldOptions.receivers1 = receiver list #1
                #                   or with a locallang variable:
                #           tx_powermail.flexForm.predefinedReceivers.addFieldOptions.receivers1 = LLL:fileadmin/locallang.xlf:key
                predefinedReceiver {
                    # example for hard coded receivers
#                                   receivers1 {
#                                           email = TEXT
#                                           email.value = email1@domain.org, email2@domain.org
#                                   }

                    # example for dynamic receiver - depending on value in field {receiver}
#                                   receivers2 {
#                                           email = CASE
#                                           email {
#                                                   key.data = GP:tx_powermail_pi1|field|receiver

#                                                   1 = TEXT
#                                                   1.value = email1@domain.org

#                                                   2 = TEXT
#                                                   2.value = email2@domain.org
#                                           }
#                                   }
                }

                # Normally you do not need to overwrite a flexform setting, but this allows you to use cObject functions
                overwrite {
                    email = TEXT
                    email.value = {$plugin.tx_powermail.settings.receiver.overwrite.email}

                    name = TEXT
                    name.value = {$plugin.tx_powermail.settings.receiver.overwrite.name}

                    senderName = TEXT
                    senderName.value = {$plugin.tx_powermail.settings.receiver.overwrite.senderName}

                    senderEmail = TEXT
                    senderEmail.value = {$plugin.tx_powermail.settings.receiver.overwrite.senderEmail}

                    subject = TEXT
                    subject.value = {$plugin.tx_powermail.settings.receiver.overwrite.subject}

                    # Add further CC Receivers (split them via comma)
                    cc = TEXT
                    cc.value = {$plugin.tx_powermail.settings.receiver.overwrite.cc}

                    # Add further BCC Receivers (split them via comma)
                    bcc = TEXT
                    bcc.value = {$plugin.tx_powermail.settings.receiver.overwrite.bcc}

                    # Add return path
                    returnPath = TEXT
                    returnPath.value = {$plugin.tx_powermail.settings.receiver.overwrite.returnPath}

                    # Reply address (both required)
                    replyToEmail = TEXT
                    replyToEmail.value = {$plugin.tx_powermail.settings.receiver.overwrite.replyToEmail}
                    replyToName = TEXT
                    replyToName.value = {$plugin.tx_powermail.settings.receiver.overwrite.replyToName}

                    # Set mail priority from 1 to 5
                    priority = {$plugin.tx_powermail.settings.receiver.overwrite.priority}
                }

                # Add additional attachments to the mail (separate each with comma)
#                           addAttachment = TEXT
#                           addAttachment.value = fileadmin/file.jpg
#                           addAttachment.wrap = |,

                # Mail Header "Sender:" see RFC 2822 - 3.6.2 Originator fields f.e. webserver@example.com, leave empty if you do not want to set a Sender-Header
                senderHeader.email = TEXT
                senderHeader.email.value = {$plugin.tx_powermail.settings.receiver.senderHeader.email}
                # optional: f.e. Webserver
                senderHeader.name = TEXT
                senderHeader.name.value = {$plugin.tx_powermail.settings.receiver.senderHeader.name}
            }

            # All settings for mail to user
            sender {
                enable = {$plugin.tx_powermail.settings.sender.enable}

                # Following settings are normally set via Flexform
                name =
                email =
                subject =
                body =

                # add file attachments from upload fields
                attachment = {$plugin.tx_powermail.settings.sender.attachment}

                # html, plain, both
                mailformat = {$plugin.tx_powermail.settings.sender.mailformat}

                addDisclaimerLink = {$plugin.tx_powermail.settings.sender.addDisclaimerLink}

                default {
                    senderEmail = TEXT
                    senderEmail.value = {$plugin.tx_powermail.settings.sender.default.senderEmail}

                    senderName = TEXT
                    senderName.value = {$plugin.tx_powermail.settings.sender.default.senderName}
                }

                # Normally you do not need to overwrite a flexform settings, but this allows you to use cObject functions
                overwrite {
                    email = TEXT
                    email.value = {$plugin.tx_powermail.settings.sender.overwrite.email}

                    name = TEXT
                    name.value = {$plugin.tx_powermail.settings.sender.overwrite.name}

                    senderName = TEXT
                    senderName.value = {$plugin.tx_powermail.settings.sender.overwrite.senderName}

                    senderEmail = TEXT
                    senderEmail.value = {$plugin.tx_powermail.settings.sender.overwrite.senderEmail}

                    subject = TEXT
                    subject.value = {$plugin.tx_powermail.settings.sender.overwrite.subject}

                    # Add further CC Receivers (split them via comma)
                    cc = TEXT
                    cc.value = {$plugin.tx_powermail.settings.sender.overwrite.cc}

                    # Add further BCC Receivers (split them via comma)
                    bcc = TEXT
                    bcc.value = {$plugin.tx_powermail.settings.sender.overwrite.bcc}

                    # Add return path
                    returnPath = TEXT
                    returnPath.value = {$plugin.tx_powermail.settings.sender.overwrite.returnPath}

                    # Reply address (both required)
                    replyToEmail = TEXT
                    replyToEmail.value = {$plugin.tx_powermail.settings.sender.overwrite.replyToEmail}
                    replyToName = TEXT
                    replyToName.value = {$plugin.tx_powermail.settings.sender.overwrite.replyToName}

                    # Set mail priority from 1 to 5
                    priority = {$plugin.tx_powermail.settings.sender.overwrite.priority}
                }

                # Add additional attachments to the mail (separate each with comma)
#                           addAttachment = TEXT
#                           addAttachment.value = fileadmin/file.jpg
#                           addAttachment.wrap = |,

                # Mail Header "Sender:" see RFC 2822 - 3.6.2 Originator fields f.e. webserver@example.com, leave empty if you do not want to set a Sender-Header
                senderHeader.email = TEXT
                senderHeader.email.value = {$plugin.tx_powermail.settings.sender.senderHeader.email}
                # optional: f.e. Webserver
                senderHeader.name = TEXT
                senderHeader.name.value = {$plugin.tx_powermail.settings.sender.senderHeader.name}
            }

            thx {
                # Following settings are normally set via Flexform
                body =
                redirect =

                overwrite {
                    # Overwrite redirect with TypoScript cObject
                    #       Return a Number: Typolink to the pid
                    #       Return a URL: Link to an intern or extern URL
                    #       Return a File: Link to a file (within fileadmin folder)
#                                   redirect = COA
#                                   redirect {
#                                           10 = TEXT
#                                           10 {
#                                                   typolink.parameter = 2
#                                                   typolink.returnLast = url
#                                                   typolink.additionalParams = &x=y
#                                           }
#                                   }
                }
            }

            db {
                # Enable mail storage
                enable = {$plugin.tx_powermail.settings.db.enable}

                # Add new mails with hidden=1
                hidden = {$plugin.tx_powermail.settings.db.hidden}
            }

            optin {
                subject = TEXT
                subject.data = LLL:EXT:powermail/Resources/Private/Language/locallang.xlf:optin_subject

                overwrite {
#                                   email = TEXT
#                                   email.value = alexander.kellner@in2code.de

#                                   name = TEXT
#                                   name.value = Receivers Name

#                                   senderName = TEXT
#                                   senderName.value = Sender Name

#                                   senderEmail = TEXT
#                                   senderEmail.value = sender@mail.com
                }
            }

            disclaimer {
                subject = TEXT
                subject.data = LLL:EXT:powermail/Resources/Private/Language/locallang.xlf:disclaimed_subject
            }




            # Captcha Settings
            captcha {
                # Select "default" (on board calculating captcha) or "captcha" (needs extension captcha)
                use = default

                default {
                    image = {$plugin.tx_powermail.settings.captcha.image}
                    font = {$plugin.tx_powermail.settings.captcha.font}
                    textColor = {$plugin.tx_powermail.settings.captcha.textColor}
                    textSize = {$plugin.tx_powermail.settings.captcha.textSize}
                    textAngle = {$plugin.tx_powermail.settings.captcha.textAngle}
                    distanceHor = {$plugin.tx_powermail.settings.captcha.distanceHor}
                    distanceVer = {$plugin.tx_powermail.settings.captcha.distanceVer}

                    # You can force a fix captcha - operator must be "+" (for testing only with calculating captcha)
#                                   forceValue = 1+1
                }
            }


            # Spam Settings
            spamshield {
                # enable or disable spam check
                _enable = {$plugin.tx_powermail.settings.spamshield.enable}

                # disable complete spam check on individual conditions (overrules ._enable=1)
#                           _disable {
#                                   1 {
                        # Disable spamcheck if visitor is in IP-Range
#                                           class = In2code\Powermail\Domain\Validator\SpamShield\Breaker\IpBreaker
#                                           configuration {
#                                                   // Commaseparated list of IPs. Use * for wildcards in the IP-address
#                                                   ipWhitelist = 127.0.0.1,192.168.0.*
#                                           }
#                                   }

#                                   2 {
                        # Disable spamcheck if any field contains a given value - like "powermailTestCase"
#                                           class = In2code\Powermail\Domain\Validator\SpamShield\Breaker\ValueBreaker
#                                           configuration {
#                                                   value = powermailTestCase
#                                           }
#                                   }
#                           }

                # Spam Factor Limit in %
                factor = {$plugin.tx_powermail.settings.spamshield.factor}

                # Notification Email to Admin if spam recognized (empty disables email to admin)
                email = {$plugin.tx_powermail.settings.spamshield.email}

                # Email address sending out spam mail. Set this if your mail transport limits allowed sender addresses
                senderEmail = {$plugin.tx_powermail.settings.spamshield.senderEmail}

                # Subject for notification Email to Admin
                emailSubject = {$plugin.tx_powermail.settings.spamshield.emailSubject}

                # Template for notification Email to Admin
                emailTemplate = {$plugin.tx_powermail.settings.spamshield.emailTemplate}

                # Path to logfile
                logfileLocation = {$plugin.tx_powermail.settings.spamshield.logfileLocation}

                # Template for logging entry
                logTemplate = {$plugin.tx_powermail.settings.spamshield.logTemplate}

                methods {
                    # Honeypot check
                    1 {
                        _enable = 1

                        # Spamcheck name
                        name = Honey Pot

                        # Class
                        class = In2code\Powermail\Domain\Validator\SpamShield\HoneyPodMethod

                        # if this check failes - add this indication value to indicator (0 disables this check completely)
                        indication = 5

                        # method configuration
                        configuration {
                        }
                    }

                    # Link check
                    2 {
                        _enable = 1

                        # Spamcheck name
                        name = Link check

                        # Class
                        class = In2code\Powermail\Domain\Validator\SpamShield\LinkMethod

                        # if this check failes - add this indication value to indicator (0 disables this check completely)
                        indication = 3

                        # method configuration
                        configuration {
                            # number of allowed links
                            linkLimit = 2
                        }
                    }

                    # Name check
                    3 {
                        _enable = 1

                        # Spamcheck name
                        name = Name check

                        # Class
                        class = In2code\Powermail\Domain\Validator\SpamShield\NameMethod

                        # if this check failes - add this indication value to indicator (0 disables this check completely)
                        indication = 3

                        # method configuration
                        configuration {
                        }
                    }

                    # Session check: Enabling session check means to store a cookie on form load. If forms are submitted powermail checks for that cookie again. If this check is disabled, powermail will not set a cookie by default.
                    4 {
                        _enable = 0

                        # Spamcheck name
                        name = Session check

                        # Class
                        class = In2code\Powermail\Domain\Validator\SpamShield\SessionMethod

                        # if this check failes - add this indication value to indicator (0 disables this check completely)
                        indication = 5

                        # method configuration
                        configuration {
                        }
                    }

                    # Unique check
                    5 {
                        _enable = 1

                        # Spamcheck name
                        name = Unique check

                        # Class
                        class = In2code\Powermail\Domain\Validator\SpamShield\UniqueMethod

                        # if this check failes - add this indication value to indicator (0 disables this check completely)
                        indication = 2

                        # method configuration
                        configuration {
                        }
                    }

                    # Value blacklist check
                    6 {
                        _enable = 1

                        # Spamcheck name
                        name = Value blacklist check

                        # Class
                        class = In2code\Powermail\Domain\Validator\SpamShield\ValueBlacklistMethod

                        # if this check failes - add this indication value to indicator (0 disables this check completely)
                        indication = 7

                        # method configuration
                        configuration {
                            # Blacklisted values (could also get read from a file - simply with FLUIDTEMPLATE)
                            values = TEXT
                            values.value = viagra,sex,porn,p0rn
                        }
                    }

                    # IP blacklist check
                    7 {
                        _enable = 1

                        # Spamcheck name
                        name = IP blacklist check

                        # Class
                        class = In2code\Powermail\Domain\Validator\SpamShield\IpBlacklistMethod

                        # if this check failes - add this indication value to indicator (0 disables this check completely)
                        indication = 7

                        # method configuration
                        configuration {
                            # Blacklisted values (could also get read from a file - simply with FLUIDTEMPLATE)
                            values = TEXT
                            values.value = 123.132.125.123,123.132.125.124
                        }
                    }
                }
            }



            # Misc Settings
            misc {
                # HTML Output for type HMTL fields
                htmlForHtmlFields = {$plugin.tx_powermail.settings.misc.htmlForHtmlFields}

                # HTML for labels
                htmlForLabels = {$plugin.tx_powermail.settings.misc.htmlForLabels}

                # Show only values if they are filled (for all views and for mails)
                showOnlyFilledValues = {$plugin.tx_powermail.settings.misc.showOnlyFilledValues}

                # Submit Powermail Forms with AJAX (browser will not reload complete page)
                ajaxSubmit = {$plugin.tx_powermail.settings.misc.ajaxSubmit}

                # Keep third-party GET/POST variables on submit with addQueryString="1" in form
                addQueryString = {$plugin.tx_powermail.settings.misc.addQueryString}

                # File upload settings
                file {
                    folder = {$plugin.tx_powermail.settings.misc.uploadFolder}
                    size = {$plugin.tx_powermail.settings.misc.uploadSize}
                    extension = {$plugin.tx_powermail.settings.misc.uploadFileExtensions}
                    randomizeFileName = {$plugin.tx_powermail.settings.misc.randomizeFileName}
                }

                datepicker {
                    # Per default html5 Date or Datetime format is used. If you don't want to use it and want to have the same datepicker all over all browsers, you can enable this feature
                    forceJavaScriptDatePicker = {$plugin.tx_powermail.settings.misc.forceJavaScriptDatePicker}
                }
            }



            # Prefill fields with their marker - e.g. {firstname} (Fields available for prefill: input, textarea, select, select multi, radio, checkbox)
            prefill {
                # example: fill with string
#                           firstname = Alex

                # example: fill with TypoScript
#                           email = TEXT
#                           email.value = alex@in2code.de
#                           email.wrap = <b>|</b>

                # example: fill checkboxes or multiselect with more values
#                           category.0 = TEXT
#                           category.0.value = IT
#                           category.1 = TEXT
#                           category.1.value = Real Estate

                # example: fill with value from Field Record
                    # available: uid, title, type, settings, css, feuserValue, mandatory, marker, pid, prefillValue, senderEmail, senderName, sorting, validation
#                           comment = TEXT
#                           comment.field = type
            }



            # Exclude values from {powermail_all} by markername or fieldtype
            excludeFromPowermailAllMarker {
                # On Confirmation Page (if activated)
                confirmationPage {
                    # add some markernames (commaseparated) which should be excluded (e.g. firstname, email, referrer)
                    excludeFromMarkerNames =

                    # add some fieldtypes (commaseparated) which should be excluded (e.g. hidden, captcha)
                    excludeFromFieldTypes =
                }

                # On Submitpage
                submitPage {
                    # add some markernames (commaseparated) which should be excluded (e.g. firstname, email, referrer)
                    excludeFromMarkerNames =

                    # add some fieldtypes (commaseparated) which should be excluded (e.g. hidden, captcha)
                    excludeFromFieldTypes =
                }

                # In Mail to receiver
                receiverMail {
                    # add some markernames (commaseparated) which should be excluded (e.g. firstname, email, referrer)
                    excludeFromMarkerNames =

                    # add some fieldtypes (commaseparated) which should be excluded (e.g. hidden, captcha)
                    excludeFromFieldTypes =
                }

                # In Mail to sender (if activated)
                senderMail {
                    # add some markernames (commaseparated) which should be excluded (e.g. firstname, email, referrer)
                    excludeFromMarkerNames =

                    # add some fieldtypes (commaseparated) which should be excluded (e.g. hidden, captcha)
                    excludeFromFieldTypes =
                }

                # In double-opt-in Mail to sender (if activated)
                optinMail {
                    # add some markernames (commaseparated) which should be excluded (e.g. firstname, email, referrer)
                    excludeFromMarkerNames =

                    # add some fieldtypes (commaseparated) which should be excluded (e.g. hidden, captcha)
                    excludeFromFieldTypes =
                }
            }



            # Manipulate values from {powermail_all} by markername
            manipulateVariablesInPowermailAllMarker {
                # On Confirmation Page (if activated)
                confirmationPage {
                    # manipulate values by given marker (e.g. firstname, email, referrer) with TypoScript - available fieldnames (access with .field=): value, valueType, uid, pid
#                                   markerName = CASE
#                                   markerName {
#                                           key.field = value
#
#                                           1 = TEXT
#                                           1.value = red
#
#                                           default = TEXT
#                                           default.value = blue
#                                   }
                }

                # On Submitpage
                submitPage {
                    # manipulate values by given marker (e.g. firstname, email, referrer) with TypoScript - available fieldnames (access with .field=): value, valueType, uid, pid
#                                   markerName = CASE
#                                   markerName {
#                                           key.field = value
#
#                                           1 = TEXT
#                                           1.value = red
#
#                                           default = TEXT
#                                           default.value = blue
#                                   }
                }

                # In Mail to receiver
                receiverMail {
                    # manipulate values by given marker (e.g. firstname, email, referrer) with TypoScript - available fieldnames (access with .field=): value, valueType, uid, pid
#                                   markerName = CASE
#                                   markerName {
#                                           key.field = value
#
#                                           1 = TEXT
#                                           1.value = red
#
#                                           default = TEXT
#                                           default.value = blue
#                                   }
                }

                # In Mail to sender (if activated)
                senderMail {
                    # manipulate values by given marker (e.g. firstname, email, referrer) with TypoScript - available fieldnames (access with .field=): value, valueType, uid, pid
#                                   markerName = CASE
#                                   markerName {
#                                           key.field = value
#
#                                           1 = TEXT
#                                           1.value = red
#
#                                           default = TEXT
#                                           default.value = blue
#                                   }
                }

                # In double-opt-in Mail to sender (if activated)
                optinMail {
                    # manipulate values by given marker (e.g. firstname, email, referrer) with TypoScript - available fieldnames (access with .field=): value, valueType, uid, pid
#                                   markerName = CASE
#                                   markerName {
#                                           key.field = value
#
#                                           1 = TEXT
#                                           1.value = red
#
#                                           default = TEXT
#                                           default.value = blue
#                                   }
                }
            }



            # Save submitted values in a session to prefill forms for further visits. Define each markername for all forms.
            saveSession {
                # Method "temporary" means as long as the browser is open. "permanently" could be used together with a frontend-user session. If method is empty, saveSession is deactivated.
#                           _method = temporary
#
#                           firstname = TEXT
#                           firstname.field = firstname
#
#                           lastname = TEXT
#                           lastname.field = lastname
            }



            marketing {

                # Use Google Adwords Conversion JavaScript on form submit
                googleAdwords {
                    _enable = {$plugin.tx_powermail.settings.marketing.enable}
                    google_conversion_id = {$plugin.tx_powermail.settings.marketing.google_conversion_id}
                    google_conversion_label = {$plugin.tx_powermail.settings.marketing.google_conversion_label}
                    google_conversion_language = {$plugin.tx_powermail.settings.marketing.google_conversion_language}
                    google_conversion_format = 3
                }

                # Send Form values to a third party software (like a CRM - e.g. salesforce or eloqua)
                sendPost {
                    # Activate sendPost (0/1)
                    _enable = TEXT
                    _enable.value = 0

                    # Target URL for POST values (like http://www.target.com/target.php)
                    targetUrl = http://eloqua.com/e/f.aspx

                    # Basic Auth Protection - leave empty if Target is not protected
                    username =
                    password =

                    # build your post values like &param1=value1&param2=value2
                    values = COA
                    values {
                        10 = TEXT
                        10 {
                            # value from field {firstname}
                            field = vorname
                            wrap = &firstname=|
                        }

                        20 = TEXT
                        20 {
                            # value from field {e_mail}
                            field = e_mail
                            wrap = &email=|
                        }

                        30 = TEXT
                        30 {
                            # value from field {comment}
                            field = comment
                            wrap = &text=|
                        }
                    }

                    # activate debug - log all configuration from curl settings to devlog (use extension devlog to view this values)
                    debug = 0
                }
            }




            # Save values to any table (see following example)
            dbEntry {

                #####################################################
                ### EXAMPLE for adding values to table tt_address ###
                #####################################################

                1 {
                    # Enable or disable db entry for table tt_address
#                                   _enable = TEXT
#                                   _enable.value = 1

                    # Set tableName to "tt_address"
#                                   _table = TEXT
#                                   _table.value = tt_address

                    # Write only if any field is not yet filled with current value (e.g. test if an email is already in database)
                        # default: always add new records (don't care about existing values)
                        # update: update record if there is an existing entry (e.g. if email is already there)
                        # none: no entry if field is filled (do nothing if record already exists)
#                                   _ifUnique.email = update

                    # optional: add additional where clause (only in mode "update") for search if a record still exists. You could use a plain string (see example below) or a cObject if needed
#                                   _ifUniqueWhereClause = AND pid = 123

                    # Fill tt_address.email with a static value => mail@mail.com
#                                   email = TEXT
#                                   email.value = mail@mail.com

                    # Fill tt_address.pid with the current pid (e.g. 12)
#                                   pid = TEXT
#                                   pid.data = TSFE:id

                    # Fill tt_address.tstamp with the current time as timestamp (like 123456789)
#                                   tstamp = TEXT
#                                   tstamp.data = date:U

                    # Fill tt_address.address with the current formatted time (like "Date: 20.01.2013")
#                                   address = TEXT
#                                   address.data = date:U
#                                   address.strftime = Date: %d.%m.%Y

                    # Fill tt_address.name with the value from powermail {firstname}
#                                   name = TEXT
#                                   name.field = firstname

                    # Fill tt_address.last_name with the value from powermail {lastname}
#                                   last_name = TEXT
#                                   last_name.field = lastname

                    # Fill tt_address.company with the value from powermail {company}
#                                   company = TEXT
#                                   company.field = company

                    # Fill tt_address.position with the uid of the mail record
#                                   position = TEXT
#                                   position.field = uid


                }


                ##############################################################
                ### EXAMPLE for building a relation to tt_address_group    ###
                ### over the MM table tt_address_group_mm                  ###
                ### Add relation to an existing address group with uid 123 ###
                ##############################################################

                2 {
                    # Enable or disable db entry for table tt_address_group_mm
#                                   _enable = TEXT
#                                   _enable.value = 1

                    # Set tableName to "tt_address_group_mm"
#                                   _table = TEXT
#                                   _table.value = tt_address_group_mm

                    # Fill tt_address_group_mm.uid_local with uid of tt_address record from above configuration 1. (usage .field=uid_[key])
#                                   uid_local = TEXT
#                                   uid_local.field = uid_1

                    # Fill new record of table "tt_address_group_mm" with field "uid_foreign" with uid 123
#                                   uid_foreign = TEXT
#                                   uid_foreign.value = 123
                }
            }




            # Add own validator classes that will be called before create action (if you want to validate user input with own PHP classes)
            validators {
#                           1 {
                    # Classname that should be called with method *Validator()
#                                   class = Vendor\Ext\Domain\Model\DoSomethingValidator

                    # optional: Add configuration for your PHP
#                                   config {
#                                           foo = bar

#                                           fooCObject = TEXT
#                                           fooCObject.value = do something with this text
#                                   }

                    # optional: If file will not be loaded from autoloader, add path and it will be called with require_once
#                                   require = fileadmin/powermail/validator/DoSomethingValidator.php
#                           }
            }




            # dataProcessor classes that will be called before the mail object will be persisted and used in mails
            dataProcessors {
                # Powermail data processors
                10.class = In2code\Powermail\DataProcessor\UploadDataProcessor
                20.class = In2code\Powermail\DataProcessor\SessionDataProcessor

                # Add your own data processor classes (e.g. if you want to do something with form values by your own before they are used in powermail to persist or in mails)
#                           1 {
                    # Classname that should be called with method *Finisher()
#                                   class = Vendor\Ext\Finisher\DoSomethingFinisher

                    # optional: Add configuration for your PHP
#                                   config {
#                                           foo = bar

#                                           fooCObject = TEXT
#                                           fooCObject.value = do something with this text
#                                   }

                    # optional: If file will not be loaded from autoloader, add path and it will be called with require_once
#                                   require = fileadmin/powermail/finisher/DoSomethingFinisher.php
#                           }
            }




            # Finisher classes that will be called after submit
            finishers {
                # Powermail finishers
                10.class = In2code\Powermail\Finisher\SaveToAnyTableFinisher
                20.class = In2code\Powermail\Finisher\SendParametersFinisher
                100.class = In2code\Powermail\Finisher\RedirectFinisher

                # Add your own finishers classes (e.g. if you want to do something with form values by your own: Save into tables, call an API, make your own redirect etc...)
#                           1 {
                    # Classname that should be called with method *Finisher()
#                                   class = Vendor\Ext\Finisher\DoSomethingFinisher

                    # optional: Add configuration for your PHP
#                                   config {
#                                           foo = bar

#                                           fooCObject = TEXT
#                                           fooCObject.value = do something with this text
#                                   }

                    # optional: If file will not be loaded from autoloader, add path and it will be called with require_once
#                                   require = fileadmin/powermail/finisher/DoSomethingFinisher.php
#                           }
            }




            # Switch on or off Debug mode (use extension devlog to view this values)
            debug {
                # All views: Show Settings from TypoScript, Flexform and Extension Manager
                settings = {$plugin.tx_powermail.settings.misc.debugSettings}

                # Create view: Show submitted variables
                variables = {$plugin.tx_powermail.settings.misc.debugVariables}

                # Create view: Show complete mail settings
                mail = {$plugin.tx_powermail.settings.misc.debugMail}

                # Create view: Show saveToTable array
                saveToTable = {$plugin.tx_powermail.settings.misc.debugSaveToTable}

                # Create view: Show spamtest results
                spamshield = {$plugin.tx_powermail.settings.misc.debugSpamshield}
            }



            # Don't touch this (this is just to let the extension know, that there is TypoScript included)
            staticTemplate = 1
        }
    }
}

# ParseFunc Configuration for using FAL links in receiver and sender mail
lib.parseFunc_powermail < lib.parseFunc_RTE
lib.parseFunc_powermail.tags.link.typolink.forceAbsoluteUrl = 1


############################
# JavaScript and CSS section
############################

# CSS classes for frameworks (add only if bootstrapClassesAndLayout is not added before)
plugin.tx_powermail {
    settings.setup {
        styles {
            numberOfColumns = {$plugin.tx_powermail.settings.styles.framework.numberOfColumns}

            framework {
                rowClasses = {$plugin.tx_powermail.settings.styles.framework.rowClasses}
                formClasses = {$plugin.tx_powermail.settings.styles.framework.formClasses}
                fieldAndLabelWrappingClasses = {$plugin.tx_powermail.settings.styles.framework.fieldAndLabelWrappingClasses}
                fieldWrappingClasses = {$plugin.tx_powermail.settings.styles.framework.fieldWrappingClasses}
                labelClasses = {$plugin.tx_powermail.settings.styles.framework.labelClasses}
                fieldClasses = {$plugin.tx_powermail.settings.styles.framework.fieldClasses}
                offsetClasses = {$plugin.tx_powermail.settings.styles.framework.offsetClasses}
                radioClasses = {$plugin.tx_powermail.settings.styles.framework.radioClasses}
                checkClasses = {$plugin.tx_powermail.settings.styles.framework.checkClasses}
                submitClasses = {$plugin.tx_powermail.settings.styles.framework.submitClasses}
                createClasses = {$plugin.tx_powermail.settings.styles.framework.createClasses}
            }
        }
    }
}

# Overwrite classes if bootrap classes given
[globalVar = LIT:0 < {$plugin.tx_powermail.settings.styles.bootstrap.important}]
plugin.tx_powermail {
    settings.setup {
        styles {
            numberOfColumns = {$plugin.tx_powermail.settings.styles.bootstrap.numberOfColumns}

            framework {
                rowClasses = {$plugin.tx_powermail.settings.styles.bootstrap.rowClasses}
                formClasses = {$plugin.tx_powermail.settings.styles.bootstrap.formClasses}
                fieldAndLabelWrappingClasses = {$plugin.tx_powermail.settings.styles.bootstrap.fieldAndLabelWrappingClasses}
                fieldWrappingClasses = {$plugin.tx_powermail.settings.styles.bootstrap.fieldWrappingClasses}
                labelClasses = {$plugin.tx_powermail.settings.styles.bootstrap.labelClasses}
                fieldClasses = {$plugin.tx_powermail.settings.styles.bootstrap.fieldClasses}
                offsetClasses = {$plugin.tx_powermail.settings.styles.bootstrap.offsetClasses}
                radioClasses = {$plugin.tx_powermail.settings.styles.bootstrap.radioClasses}
                checkClasses = {$plugin.tx_powermail.settings.styles.bootstrap.checkClasses}
                submitClasses = {$plugin.tx_powermail.settings.styles.bootstrap.submitClasses}
                createClasses = {$plugin.tx_powermail.settings.styles.bootstrap.createClasses}
            }
        }
    }
}
[end]

# add jQuery if it was turned on in the constants
[globalVar = LIT:0 < {$plugin.tx_powermail.settings.javascript.addJQueryFromGoogle}]
page.includeJSFooterlibs.powermailJQuery = {$plugin.tx_powermail.settings.javascript.powermailJQuery}
page.includeJSFooterlibs.powermailJQuery.external = 1
[end]

# add jQuery if it was turned on in the constants
[globalVar = LIT:0 < {$plugin.tx_powermail.settings.javascript.addAdditionalJavaScript}]
page {
    # Inlude JavaScript files
    includeJSFooter {
        powermailJQueryDatepicker = EXT:powermail/Resources/Public/JavaScript/Libraries/jquery.datetimepicker.min.js
        powermailJQueryFormValidation = EXT:powermail/Resources/Public/JavaScript/Libraries/parsley.min.js
        powermailJQueryTabs = EXT:powermail/Resources/Public/JavaScript/Powermail/Tabs.min.js
        powermailForm = EXT:powermail/Resources/Public/JavaScript/Powermail/Form.min.js
    }
}
[end]