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
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
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
}
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
}
}
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
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')}*