Predefined Receiver

In some case it could be useful, that the email receiver should be chosen by a selectfield value. E.g. if the visitor selects "receiver A" or "country B" in a dropdown, powermail should use receivera@domain.org and in all other cases receiverb@domain.org

bestpractice_predefinedreceivers1

Activate Predefined Receiver

You can add a new option to the predefined receiver with a bit of page TSConfig

tx_powermail.flexForm.predefinedReceivers.addFieldOptions.receivers1 = receivers #1

bestpractice_predefinedreceivers2

Conditional receiver via TypoScript

Small example

In a simple example rec1@domain.org and rec2@domain.org should be always used, if the editor chooses "receivers2" in the plugin dropdown:

plugin.tx_powermail.settings.setup.receiver.predefinedReceiver {
    receivers2.email = TEXT
    receivers2.email.value = rec1@domain.org, rec2@domain.org
}
Copied!

Dynamic example 1

In a bit more advanced example, we want to choose the receiver by a given value (e.g. of a select box). If value 1 is given in a field with marker {receiver}, receivera@domain.org should be chosen and if value 2 or something else is given, receiverb@domain.org should be chosen. See following TypoScript setup example:

plugin.tx_powermail.settings.setup.receiver.predefinedReceiver {

    receivers1.email = CASE
    receivers1.email {

        key.data = GP:tx_powermail_pi1|field|receiver

        1 = TEXT
        1.value = receivera@domain.org

        default = TEXT
        default.value = receiverb@domain.org
    }
}
Copied!

Dynamic example 2

Here is another advanced example how to set a different email address for the receiver, by changing an integer into a frontend user email address (get it from database fe_users.email by given fe_users.uid). We just use some lines of TypoScript with cObject CONTENT (example for TYPO3 8). See following TypoScript setup example:

# Get Email address from fe_users by given POST-parameter
lib.receiver = CONTENT
lib.receiver {
    table = fe_users
    select {
        # Page with fe_users records
        pidInList = 33

        where {
            # UID of the fe_users record is given in field with marker {receiver}
            data = GP:tx_powermail_pi1|field|receiver

            wrap = uid=|
            intval = 1
        }
    }
    renderObj = TEXT
    renderObj {
            field = email
    }
}

plugin.tx_powermail.settings.setup.receiver.predefinedReceiver.receivers3.email < lib.receiver
Copied!

Additional note


The lib.receiver from the last example can also be used with predefined receivers or directly via
cObjectViewHelper in the receiver field in FlexForm - like:
*{f:cObject(typoscriptObjectPath:'lib.receiver')}*
Copied!